我想我在这里遗漏了一些非常明显的东西,但不知何故我无法理解它 - 我正在使用pyes非常直接地查询ElasticSearch端点,以便我可以通过执行类似的操作来访问结果
print results.hits.hits._source.mets
并按照预期的那样获得表达为Python dicts的JSON的全部内容:
但是,当我尝试更深入一些时,我遇到了一个问题:一些关键名称中有冒号。我已经尝试过每个聪明的解决方案,我可以想到使用斜杠和qutoes的各种组合来逃避这些,但不知何故,我无法弄明白,所以我不断在冒号上得到语法错误:{u'ns0:mets_list':[{u'@ xmlns:ns0':u'http://www.loc.gov/METS/',u'@ xmlns:ns3':u'http://hul.harvard.edu/ois/xml/ns/fits/fits_output',u'@ xmlns:ns2':u'info:lc / xmlns / premis-v2',u'@ xmlns:ns4':u'http://www.w3.org/1999/xlink',u'ns0:amdSec_list':[{u'ns0:techMD_list' :[{u'ns0:mdWrap_list':[{u'@ MDTYPE':u'PREMIS:OBJECT'...
print results.hits.hits [0] ._ source.mets.ns0:mets_list.ns0:fileSec_list
有人心里指出我在这里失踪的蠢事吗?不幸的是,我需要为这个项目使用一个稍微过时的pyes版本,所以我不想过于依赖当前的文档,虽然我对unicode解码通常如何在Python中运行有所了解,但它并没有揭示简单的解决方案
谢谢!
答案 0 :(得分:0)
print getattr(results.hits.hits[0]._source.mets,"ns0:mets_list")
可能有效
答案 1 :(得分:0)
也许你想要的对象是results.hits.hits[0]._source.mets[u'ns0:mets_list']
?