Ошибка в python, requests

import requests
response = requests.get('https://fex24.com/rates.html?sType=json')
print(response.content['rates'])

Вылезает ошибка:

  File "fex.py", line 3, in <module>
    print(response.content['rates'])
TypeError: byte indices must be integers or slices, not str

Что делать?


Ответы (1 шт):

Автор решения: insolor
  • response.content - это ответ в виде байт. К набору байт нельзя обратиться через ключ-строку, как словарю (то что вы пытаетесь сделать в вопросе).
  • response.text - те же данные, но декодированные из байт в строку (то же самое, что response.content.decode(), или response.content.decode(response.encoding), если в response.encoding не None)
  • response.json - если ответ является строкой содержащей json, то это поле вернет данные этого json в виде словаря (dict). То же самое можно получить с помощью json.loads(response.text) (должен быть импортирован модуль json).

Вам нужен именно последний вариант, поэтому последнюю строку замените на

print(response.json['rates'])
→ Ссылка