Я занимаюсь веб-очисткой, и я получил данные в json объекте, который выглядит следующим образом:
{'categories': '[{"title":"Name", "desc":"Mike"}, {"title":"Food", "desc":"Muffin"}]'}
И я хочу l oop через этот словарь и просто получить одно значение " Сдоба». Мой код:
for item in the_dict:
for i in range(0, len(item)-1):
muff_filter = json.loads(the_dict['categories'])[i]['title']
if muff_filter == 'Food':
print(json.loads(the_dict['categories'])[i]['desc'])
else:
pass
Я получаю ожидаемый вывод, однако я получаю сообщение об ошибке:
Muffin
---------------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-50-9a650257d42a> in <module>
61 for item in the_dict:
62 for i in range(0, len(item)-1):
---> 63 food_filter = json.loads(the_dict['categories'])[i]['title']
64 if food_filter == 'Food':
65 print(json.loads(the_dict['categories'])[i]['desc'])
IndexError: list index out of range
Я пытался перечислить список, но все равно получаю ту же ошибку, а также пытался использовать ключ, пара значений, но та же ошибка. Можете ли вы дать мне представление о том, что я не так думаю?
+++ Итак, я запустил% xmode Verbose в соответствии с предложением в комментарии, и я получил следующую ошибку:
Muffin
--------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-68-e1844b3cae82> in <module>
61 for item in get_cert:
62 for i in range(0, len(item)-2):
---> 63 the_dict= json.loads(the_dict['categories'])[i]['title']
global get_cert = {'categories': '[{"title":"Name","desc":"Mike"},{"title":"Food","desc":"Muffin"}]'}
global i = 2
64 if muff_filter == 'Food':
65 print(json.loads(the_dict['categories'])[i]['desc'])
IndexError: list index out of range