0

我想我在这里遗漏了一些非常明显的东西,但不知何故我不太明白——我正在使用 pyes 非常简单地查询 ElasticSearch 端点,这样我就可以通过执行类似的操作来访问结果

打印 results.hits.hits._source.mets

并得到一整套以 Python dicts 表示的 JSON,正如预期的那样:

{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' ...

但是,当我尝试更深入一些级别时,我遇到了一个问题:一些键名中有冒号。我已经尝试了所有我能想到的聪明的解决方案来使用斜杠和引号的各种组合来逃避这些,但不知何故,我无法弄清楚,所以我一直在冒号上遇到语法错误:

打印 results.hits.hits[0]._source.mets.ns0:mets_list.ns0:fileSec_list

有人介意指出我在这里缺少的愚蠢的东西吗?不幸的是,我需要为这个项目使用稍微过时的 pyes 版本,所以我不想过于依赖当前的文档,虽然我对 unicode 解码在 Python 中的正常工作方式有所了解,但它并没有揭示简单的解决方案.

谢谢!

4

2 回答 2

0

也许你想要的对象是results.hits.hits[0]._source.mets[u'ns0:mets_list']

于 2014-07-22T18:33:30.653 回答
0
print getattr(results.hits.hits[0]._source.mets,"ns0:mets_list")

可能有用

于 2014-07-21T21:44:26.810 回答