Python elasticsearch:我无法检索json文档的hit.from
我试图打印一个查询的结果,我发现我无法从Python elasticsearch:我无法检索json文档的hit.from,python,json,
elasticsearch,Python,Json,
elasticsearch,我试图打印一个查询的结果,我发现我无法从json文档的hit.中检索。 它告诉我语法错误:无效语法。 from是表示电子邮件的jsondoc字段 我在此发布查询代码: client = Elasticsearch() query_string = raw_input("Enter your query string: ") print(query_string) s = Search(using=client, index="enron_test") .query("match",
json
文档的hit.中检索。
它告诉我语法错误:无效语法。
from
是表示电子邮件的json
doc字段
我在此发布查询代码:
client = Elasticsearch()
query_string = raw_input("Enter your query string: ")
print(query_string)
s = Search(using=client, index="enron_test")
.query("match", message_body=query_string)
response = s.execute()
下面是打印结果的代码:
for hit in response:
print(hit.from)
print(hit.to)
print(hit.message_body)
print(line + "\n")
奇怪的是,
中的以灰色突出显示
以下是json
文档:
{
"_index": "enron_test",
"_type": "enron_type",
"_id": "AVzjqJ_-Jz9fMnhSpbdm",
"_score": 1.7868237,
"_source": {
"message_body": "'Arry (calxa@aol.com), Lime Ex-splurt Extraordinaire...
"content-transfer-encoding": "7bit",
"file_name": "2.",
"sub_holder": "",
"subject": "Re: History of Lime and Cement",
"x-cc": "strawbale@crest.org",
"from": "rob_tom@freenet.carleton.ca",
"x-folder": "\\Phillip_Allen_Dec2000\\Notes Folders\\Straw",
"content_size_in_bytes": 1811,
"to": "calxa@aol.com",
"x-origin": "Allen-P",
"mime-version": "1.0",
"x-bcc": "",
"x-filename": "pallen.nsf",
"date": "Thu, 17 Feb 2000 07:37:00 -0800 (PST)",
"x-to": "CALXA@aol.com",
"loaded_on": "2017-06-26",
"cc": "strawbale@crest.org",
"bcc": "strawbale@crest.org",
"x-from": "rob_tom@freenet.carleton.ca (Robert W. Tom)",
"message-id": "<22208447.1075855692838.JavaMail.evans@thyme>",
"content-type": "text/plain; charset=us-ascii"
}
},
{
“_指数”:“安然_测试”,
“_类型”:“安然_类型”,
“_id”:“AVzjqJ_z9fmnhspbdm”,
“_分数”:1.7868237,
“_来源”:{
“消息体”:“Arry”(calxa@aol.com),莱姆特级律师。。。
“内容传输编码”:“7bit”,
“文件名”:“2.”,
“附属持有人”:“附属持有人”,
“主题”:“Re:石灰和水泥的历史”,
“x-cc”:strawbale@crest.org",
“from”:“rob_tom@freenet.carleton.ca",
“x文件夹”:“\\Phillip\u Allen\u Dec2000\\Notes文件夹\\Straw”,
“内容大小以字节为单位”:1811,
“至”:calxa@aol.com",
“x-origin”:“Allen-P”,
“mime版本”:“1.0”,
“x-bcc”:“,
“x-filename”:“pallen.nsf”,
“日期”:“星期四,2000年2月17日07:37:00-0800(太平洋标准时间)”,
“x-to”:CALXA@aol.com",
“已加载”:“2017-06-26”,
“抄送”:strawbale@crest.org",
“密件抄送”:strawbale@crest.org",
“x-from”:“rob_tom@freenet.carleton.ca(罗伯特·W·汤姆)“,
“消息id”:“”,
“内容类型”:“文本/普通;字符集=美国ascii”
}
},
Elasticsearch结果包含一系列其他字段,为您提供有关文档以及内容本身的更多信息
{
"take":1,,
“超时”:false,
“_碎片”:{
“总数”:1,
"成功":一,,
“失败”:0
},
“点击次数”:{
“总数”:1,
“最高分数”:1.3862944,
“点击次数”:[
{
“_索引”:“推特”,
“_type”:“tweet”,
“_id”:“0”,
“_分数”:1.3862944,
“_来源”:{
“用户”:“kimchy”,
“消息”:“正在尝试Elasticsearch”,
“日期”:“2009-11-15T14:12:12”,
“喜欢”:0
}
}
]
}
}
因此,要从实际文档中获取from
字段,您需要执行以下操作:
对于响应中的命中['hits']['hits']:
打印(点击[来源][来自])
我们能看到json数据吗?我发布了一个json
docIt的例子,它不起作用。它告诉我SyntaxError:invalid syntax
更新了答案它起作用了!即使我不明白为什么我的原始代码为hit.to
和hit.message\u body
而不是hit.from
。谢谢你,我知道谢谢你!