2015-09-22 7 views
0

В настоящее время я работаю с yahoo api.Parse JSON in Python Issue

Я могу получить ответ json от вызова api. Я пытаюсь разобрать эти данные на 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) 

Я хотел только извлечь и распечатать Пейтон Мэннинг

>>> print(parsed_json['full']) 

Когда я запускаю линию печати: Получаю эту ошибку:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
KeyError: 'full' 

Кто-нибудь знает, что я делаю неправильно в этом примере.

ответ

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' 
+0

поблагодарить вашего для ответа работал отлично – bfali

+0

Вложенных словарей нет ничего особенного. Каждый раз, когда вы выполняете 'dictionary [key]' значение возвращается. Вы можете сделать 'nested = dictionary [key1]', а затем использовать 'nested [key2]' или просто использовать 'dictionary [key1] [key2]' для того же эффекта. Просто продолжайте цеплять. –

+0

У меня есть еще один запрос, который выглядит так: '{u'query ': {u'count': 1, u'created ': u'2015-09-23T12: 29: 56Z', u'lang ': u'en-US', u'results ': {u'player': {u'name ': {u'full': u'Peyton Manning '}, u'player_points': {u'total ': u'21.24'}}}}} ' – bfali

 Смежные вопросы

  • Нет связанных вопросов^_^