#python #elasticsearch
#python #elasticsearch
Вопрос:
Я использую python для интеграции Elasticsearch в свою программу. Я использую pycurl, и мне удается добавлять, изменять и удалять любые документы, но теперь я хотел бы проверить, существует ли один документ. Я написал короткий код, который отправляет запрос get, но мне не удается найти всю информацию, чем я хочу, потому что у меня эта ошибка:
Ошибка атрибута: объект ‘dict’ не имеет атрибута ‘find’
мой короткий код:
#!/usr/bin/python
import re
import pycurl
import json
import StringIO
from datetime import datetime, timedelta
retentionDays = 30
c = pycurl.Curl()
b = StringIO.StringIO()
c.setopt(c.URL, 'http://127.0.0.1:9200/twitter/tweet/_search?q=reference:24272605AAA')
c.setopt(pycurl.WRITEFUNCTION, b.write)
c.perform()
try:
decoded = json.loads(b.getvalue())
# pretty printing of json-formatted string
print json.dumps(decoded, sort_keys=True, indent=4)
var = decoded['hits']
print "JSON parsing example: ", decoded['hits']
print var.find(':0, ')
except (ValueError, KeyError, TypeError):
print "JSON format error"
если кто-то может мне помочь.
Заранее спасибо
Комментарии:
1. Пожалуйста, обновите более подробный журнал ошибок.
2. какую информацию вы ищете? Также у dict есть метод get, но нет метода find. Таким образом,
var.get("total")
было бы возвращено 0, которое является значением3. Большое вам спасибо за ваш ответ. Это работа
4. Не беспокойтесь, пожалуйста, использование get похоже на использование var[«total»] для доступа к значению, за исключением того, что оно не выдаст ошибку ключа, если оно не существует, по умолчанию оно не возвращает None, но вы можете передать ему свое собственное значение, если хотите, например, var.get («total», «No key») и т.д..