#python #keyerror #riot-games-api
Вопрос:
поэтому я столкнулся с проблемой, когда я не могу получить доступ к ключу в файле riot json. http://ddragon.leagueoflegends.com/cdn/11.16.1/data/en_US/item.json это официальная ссылка на riot, которую вы можете найти на их сайте api riot в разделе «Пункты».
если вы напишете это:
for key, value in items['data'].items():
print(value)
это возвращает все ценности
Если вы напишете это:
for key value in items['data'].items():
print(value['name'])
он возвращает имя, и это похоже на все остальные значения[ключа], за исключением «ключа глубины». Я использовал цикл double for, и он, наконец, вернул все значения глубины:
for key,value in items['data'].items():
for k,v in value.items():
if k == 'depth':
print(v)
Но это не спасает меня, потому что я хочу написать что-то вроде, если «глубина» = = 3, я хочу добавить элемент «имя» в список.
Я подумал, что, возможно, это ошибка, потому что первые элементы в этом файле не имеют ключа «глубина», поэтому я написал исключение, но оно не сработало.
Комментарии:
1. Пожалуйста, проясните вашу конкретную проблему или предоставьте дополнительные сведения, чтобы точно указать, что вам нужно. Поскольку это написано в настоящее время, трудно точно сказать, о чем вы просите.
Ответ №1:
Просто используйте get()
метод, чтобы получить значение определенного ключа. Затем вы можете сравнить его с желаемым значением. В вашем случае понимание списка с помощью простой проверки может выполнить эту работу:
names_list = [v.get('name') for v in items['data'].values() if v.get('depth') == 3]
Комментарии:
1. Это работает как заклинание, большое вам спасибо
2. @Midnightwhite3 Если ответ помог, вы должны принять его и, вероятно, проголосовать.