не может печатать элемент из json файла с помощью python

-6

Может ли кто-нибудь помочь мне с этой проблемой?

Мой код:

with open('data.json', 'r') as f:  
r107sData = json.load(f)

for r107s in r107sData:

print(r107s['feedback'][0])

Json Schema:

https://pastebin.com/CBEy8hUG

Ошибка;

'' 'Traceback (последний последний вызов): Файл "api.py", строка 39, в печати (r107s [' feedback '] [0]) KeyError: 0

Спасибо, друзья! я решил проблему

спросил(а) 2018-12-06T13:51:00+03:00 1 год, 8 месяцев назад
0
95

Пожалуйста, используйте "sos_signal"

#!/usr/bin/python

import json

with open('sample.json', 'r') as f:
r107sData = json.load(f)

for r107s in r107sData:

print(r107s['feedback']['sos_signal'])

Обратите внимание: мое имя json файла немного отличается

ответил(а) 2018-12-06T14:01:00+03:00 1 год, 8 месяцев назад
39

0 не существует в качестве ключа в вашем r107s['feedback'] dict, но sos_signal делает.

Если r107s['feedback'] был списком, тогда r107s['feedback'][0] предоставит вам первый элемент.

Поэтому r107s['feedback']['sos_signal'] даст вам "sos".

ответил(а) 2018-12-06T13:55:00+03:00 1 год, 8 месяцев назад
40

Посмотрите внимательно, ваш json - это список или массив. Элемент словаря входит внутрь него. Вместо этого вы бы сделали r107s['feedback'] как -

import json
with open('tmp.txt', 'r') as f:
r107sData = json.load(f)

for r107s in r107sData:
print(r107s['feedback'])

Выход:

{'sos_signal': 'S0s Signal'}
{'goodfeedback': 'Good feedback'}
{'badfeedback': 'Bad feedback'}
{'sos_signal': 'S0s Signal'}

ответил(а) 2018-12-06T13:54:00+03:00 1 год, 8 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема