Я пытаюсь работать со словарями внутри списка в файле JSON. Данные импортируются штрафом и хорошо читаются. Для жизни я не могу понять, как распечатать ключи «member_id». Я просто хочу напечатать список чисел «member_id». Сначала я использовал json.loads, а затем переключился на json.dumps. Любая помощь будет действительно оценена.KeyError В Python С json.dumps
import urllib2
import json
nyt_api_key = '72c9a68bbc504e91a3919efda17ae621%3A7%3A70586819'
url= 'http://api.nytimes.com/svc/politics/v3/us/legislative/congress/113'
json_obj = urllib2.urlopen(url)
data = json.load(json_obj)
data2 = json.dumps(data, sort_keys=True, indent=True, skipkeys = True)
print data2
Выход из print data2
: (список можно продолжать и дальше, так что обрезано Существует закрывающая скобка в нижней части списка Так что словари в списке...)
"positions": [
{
"dw_nominate": "0.466",
"member_id": "A000055",
"vote_position": "Yes"
},
{
"dw_nominate": "0.995",
"member_id": "A000367",
"vote_position": "Yes"
},
{
"dw_nominate": "0.666",
"member_id": "A000369",
"vote_position": "Yes"
},
выход из print data2['member_id']
, выход то же самое при использовании 'позиции', 'vote_position', и т.д .:
Traceback (most recent call last):
File "/Users/Owner/PycharmProjects/untitled2/1", line 9, in <module>
print data2["positions"]
TypeError: string indices must be integers, not str
выход из print data
:
u'positions': [{u'dw_nominate': u'0.466', u'vote_position': u'Yes', u'member_id': u'A000055'}, {u'dw_nominate': u'0.995', u'vote_position': u'Yes', u'member_id': u'A000367'}, {u'dw_nominate': u'0.666', u'vote_position': u'Yes', u'member_id': u'A000369'}
Выход из print data['positions']
:
print data["positions"] KeyError: 'positions'
Выход из print.data(keys)
:
[u'status', u'results', u'copyright']
Process finished with exit code 0
'json.dumps' возвращает' string' и, следовательно, исключение. try 'print data ['member_id']' –
'json.dumps' создает строку ** **, так что вы назначаете' data2' (из данных объекта ', который, по-видимому, является списком dicts). Что вы пытаетесь достичь?! –
@AkashShende похоже, что 'data' - это список dicts, поэтому' data ['member_id'] 'также будет терпеть неудачу - что-то вроде' data [0] ['member_id'] 'может быть хорошо, но без идеи что OP пытается выполнить, это просто догадка :-) –