Ошибка list indices must be integers. Как исправить?

Через реквест парщу JSON с сайта
"result":{"stats":[{"hi":"0.00","bye":"0.00","algo":9"},{"hi":"0.00","bye":"0.00","algo":8"},{"hi":"0.00","bye":"0.00","algo":7"}]}

В JSON элементы отличаются только по algo

Парсер:
r2 = requests.get('https://www..com/api?) 
			data = r2.json()
			for i in data['result']['stats']:
			x1 = data['result']['stats'][i]['hi']
			z1 = data['result']['stats'][i]['bye']
			bot.send_message(cid, str(x1) + str(z1))


Хочу чтобы на каждые {} в result|stats отправлять сообщение.

Выдаёт ошибку "list indices must be integers, not dict"
Понимаю, что это из-за [] в json, но не знаю как это исправить
Помогите с решением
  • Вопрос задан
  • 306 просмотров
Пригласить эксперта
Ответы на вопрос 1
Для начала разделите строки вида
x1 = data['result']['stats'][i]['hi']

На несколько строк:
_x = data['result']
_x = _x['stats']
_x = _x[i]
x1 = _x['hi']

Так вы найдёте, в каком именно месте ошибка.

Потом попробуйте посмотреть, чему равны значения при запуске этой сроки, добавив перед ней пару print().

А вообще, да... ответы.мэйл.ру, какие-то...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы