2016-01-22 2 views
0

У меня есть файл в формате JSON со словарем, который выглядит какПолучение ключа, значение питона JSON данных

{"tvs": 92, "sofas": 31, "chairs": 27, "cpus": 007} 

Я пытаюсь цикл, хотя словарь и распечатать ключ с его соответствующим значением, в моем коде 'm получить слишком много значений, чтобы распаковать ошибку.

with open('myfile.json', "r") as myfile: 
json_data = json.load(myfile) 
for e, v in json_data: 
    for key, value in e.iteritem(): 
    print key, value 

ответ

1

Итак, по умолчанию dict будет перебирать ключи.

for key in json_data: 
    print key 
# tvs, sofas, etc... 

Вместо этого кажется, что вы хотите перебирать пары ключ-значение. Это можно сделать, позвонив по словарю .items().

for key, value in json_data.items(): 
    print key, value 

Или вы можете перебрать только значения, вызвав .values().

1

Это вы что искали?

>>> json = {"tvs": 92, "sofas": 31, "chairs": 27, "cpus": 007} 
>>> for j in json: 
...  print j, json[j] 
... 
chairs 27 
sofas 31 
cpus 7 
tvs 92 
1

Попробуйте это:

with open('myfile.json', "r") as myfile: 
    json_data = json.load(myfile) 
    for e, v in json_data.items(): 
     print e,v 

У вас есть дополнительный цикл в коде, кроме того, входной файл содержит недопустимые данные 007. Загрузка его в json должна дать вам ошибку.

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