在 Python 问题中解析 JSON

Parse JSON in Python Issue

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

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

你有一个嵌套字典;值为其他词典的词典。

使用 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'