在Python问题中解析JSON

时间:2015-09-22 20:43:56

标签: python json api parsing yahoo-api

我目前正在使用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'

在这个例子中有没有人知道我做错了什么。

1 个答案:

答案 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'