我目前正在使用yahoo api。
我能够从api调用中检索json响应。我试图在python中解析这些数据,目前我遇到了麻烦。
以下是我正在进行的无法正确解析并出错的过程。
resp.content - 这包含JSON消息 - json如下所示
{"query":{"count":1,"created":"2015-09-22T19:52:42Z","lang":"en-US","results":{"player":{"player_key":"348.p.4256","name":{"full":"Peyton Manning"}}}}}
遵循步骤
>>> import json
>>> parsed_json = json.loads(resp.content)
我只想提取和打印Peyton Manning
>>> print(parsed_json['full'])
当我运行打印行时:我收到此错误:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'full'
在这个例子中有没有人知道我做错了什么。
答案 0 :(得分:1)
你有一个嵌套的字典;字典,其值是其他字典。
使用pprint.pprint()
function会更清楚:
>>> from pprint import pprint
>>> pprint(parsed_json)
{u'query': {u'count': 1,
u'created': u'2015-09-22T19:52:42Z',
u'lang': u'en-US',
u'results': {u'player': {u'name': {u'full': u'Peyton Manning'},
u'player_key': u'348.p.4256'}}}}
您需要沿路径寻址密钥以获取'full'
密钥的值:
>>> parsed_json['query']['results']['player']['name']['full']
u'Peyton Manning'