Элементы данных Дракона, ошибка ключа

#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 Если ответ помог, вы должны принять его и, вероятно, проголосовать.