我有一个json格式,我必须从中提取关键:非常重视它第一次出现在文件中。浏览了几个例子,但出现了一个错误。你知道吗
{
"search-results": {
"entry": [
{
"@_fa": "true",
"eid": "10-s2.0-60103485",
"prism:url":
"https://api.elsevier.com/content/affiliation/affiliation_id/60103485"
},
{
"@_fa": "true",
"eid": "10-s2.0-113310784",
"prism:url":
"https://api.elsevier.com/content/affiliation/affiliation_id/113310784"
},
我试过:
myvar = results['search-results'][0]['entry']['eid']
print (myvar)
TypeError: string indices must be integers
results = json.dumps(resp.json(),
sort_keys=True,
indent=4, separators=(',', ': '))
print(results)
myvar = results['search-results'][0]['entry']['eid']
print (myvar)
我需要在它第一次出现时提取"eid": "10-s2.0-60103485"
。你知道吗
您只需要翻转
['entry']
和[0]
的位置。你知道吗你的问题不太清楚这一点,但如果:
是引起TypeError的代码,那么,很明显,这就是我们所期望的。
json.dumps(obj, ...)
获取Python对象并将其序列化为json字符串,因此在代码中results
是一个字符串(它包含json格式的内容这一事实完全不相关)。要将json字符串反序列化为Python(以便获得可以使用的Python对象),需要使用json.loads(somejsonstr)
。你知道吗现在实际上,
resp.json()
(我假设resp
来自python-requests
库)已经负责将其内容反序列化到Python,因此您没有更多的事情要做-当然,除了按照James\u F所提到的正确顺序获取dict键/列表索引:尝试使用jsonpath_ng.ext公司是的
输出
{'@_fa': 'true', 'eid': '10-s2.0-60103485', 'prism:url': 'https://api.elsevier.com/content/affiliation/affiliation_id/60103485'}
相关问题 更多 >
编程相关推荐