我从文件来源的Elasticsearch使用JSON的字典,看起来像这样:的Python 2叠代嵌套JSON字典
{
u'hits':{
u'hits':[
{
u'_score':1.0,
u'_type':u'input',
u'_id':u'1',
u'_source':{
u'message':u'I really love fake news tho.'
},
u'_index':u'gossip'
}
],
u'total':1,
u'max_score':1.0
},
u'_shards':{
u'successful':1,
u'failed':0,
u'total':1
},
u'took':3,
u'timed_out':False
}
有几千个文件,我希望得到每个列表'消息'值。我尝试了几种方法,但似乎无法获得正常运行的解决方案。我现在的尝试是:
messages = es.search(index="gossip", _source=['message'])
for key, value in messages.iteritems():
print key, value
导致:
hits{
u'hits':[
{
u'_score':1.0,
u'_type':u'input',
u'_id':u'1',
u'_source':{
u'message':u'I really love fake news tho.'
},
u'_index':u'gossip'
}
],
u'total':1,
u'max_score':1.0
}_shards{
u'successful':1,
u'failed':0,
u'total':1
}
希望有人能轻推我在正确的方向。
尝试'消息[0] .itertools()' –
否运气'为键,在信息中值[0] .itertools(): KeyError异常:0' – nmacc
假定该您的文档列表是一个名为docs的数组,您是否可以像下面这样引用它:docs'docs''hits'] ['hits'] [0] ['_ source'] ['message'] for doc in docs] ' – nb1987