我一定错过了什么。当我做一个elastic.search(index ='假释',q =' sometext')时,我得到了一个返回的对象。我试图在这个对象中获取元素
data=elastic.search(index='parole', q='sometext')
mydata=data['hits']['hits']
这很有效。
但如果我这样做:
mydata['_source']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: list indices must be integers or slices, not str
我做错了什么?
>>> mydata=data['hits']['hits']
>>> mydata
[{'_id': '6', '_source': {'parole_de_la_chanson': " Blabla", 'titre_chanson': 'Allo Maman Bobo', 'numero_id_json': 'key6', 'nom_du_chanteur': ' 'Alain Souchon '}, '_index': 'parole', '_type': 'string', '_score': 0.2802974}]
答案 0 :(得分:2)
问题是data
是一个列表。我会说,试试mydata = data[0]['hits']['hits']
,但它看起来并不像'hits'就在那个列表中,即使在字典中也是如此。