2015-09-29 3 views
2

Попытка получить конкретные данные через мой формат JSON, и я не могу этого сделать. Попытка сделать это на Python, и я хочу, чтобы было напечатано более 1 штуки. Я предоставляю пример кода, чтобы сделать его понятным. Название файла: blahJSON Извлечение в Python.

{ u'info': { u'more_info': { u'xyz': u'[]', 
          u'xyz': None, 
          u'xyz': 00000, 
          u'description': u'blah blah blah', 
          u'xyz': 0000, 
          u'url': 
          u'xyz': False, 
          u'name': u'BLAH BLAH', 
          u'xyz': 10, 
          u'xyz': 1, 

Я имею в виду документацию, но это все еще не позволяет мне.

Я попробовал этот

for xyz in blah['info']['more_info']: 
fs = xyz['name']['description']['url'] 

Ошибка в том, что: "TypeError: индексы строк должно быть целым числом"

Пожалуйста, помогите.

+0

Осторожно с отступом. Это не причина ошибки, которую вы видите, но строка, начинающаяся с 'fs =', должна быть отступом. – Basic

ответ

1

Итерация по ключу дает ключи. Но поскольку у вас есть dict, просто обращайтесь к элементам напрямую.

print blah[u'info'][u'more_info'][u'name'] 
print blah[u'info'][u'more_info'][u'description'] 
print blah[u'info'][u'more_info'][u'url'] 
+0

Вы являетесь реальным MVP – leui

+0

И чтобы сохранить повторяющиеся затраты на поиск (и набрав), вы можете назначить локальный результат с результатами первых двух поисков, 'more_info = blah [u'info '] [u'more_info']' then используйте кешированное значение повторно, 'print more_info [u'name ']', 'print more_info [' description ']' и т. д. – ShadowRanger

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