Ошибка типа: индексы списка должны быть индексами или срезами, а не str (Riot Games Python API)

#python #typeerror #riot-games-api

#python #ошибка типа #riot-games-api

Вопрос:

Я перепробовал много потенциальных решений, предлагаемых на сайте и в Google, но ни одно из них не дало мне никакого успеха. Я пытаюсь извлечь определенный элемент из списка после запроса в Riot Games API.

Мой код:

 lol_watcher = LoLWatcher('<API_KEY>')

my_region = 'na1'

me = lol_watcher.summoner.by_name(my_region, 'doublelift')

my_ranked_stats = lol_watcher.league.by_summoner(my_region, me['id'])

print(my_ranked_stats)
 

Это выводит следующее:

 [{'leaguId': <leagueID>, 'queueType': <queueType>, 'tier': <tier>,...}]
 

Моя проблема возникает, когда я пытаюсь и print только 'tier' :
print(my_ranked_stats['tier'])

Если я создаю таким образом, он выдает TypeError: list indices must be integers or slices, not str ошибку.

Любая помощь в этом приветствуется.

Ответ №1:

Это потому my_ranked_stats , что это список. 'tier' Ключ существует в словаре, который является первым первым элементом my_ranked_stats списка. Таким образом, вы должны получить доступ ['tier'] из нулевого индекса списка следующим образом:

 print(my_ranked_stats[0]['tier'])
 

Комментарии:

1. Спасибо. Теперь я чувствую себя настоящим идиотом, но спасибо!