elasticsearch,Python,Json,elasticsearch" /> elasticsearch,Python,Json,elasticsearch" />

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
。谢谢你,我知道谢谢你!