Ответ 1
json.loads(myResponse.content.decode('utf-8'))
Вы просто поставили это в неправильном порядке, невинная ошибка.
(Подробный ответ). Как вежливо указывает wim, в некоторых редких случаях они могут выбрать UTF-16 или UTF-32. Эти случаи будут менее распространены, чем разработчики, в этом сценарии будет сознательно решено выбросить ценную пропускную способность. Таким образом, если вы столкнетесь с проблемами кодирования, вы можете изменить utf-8 на 16, 32 и т.д.
Есть несколько решений для этого. Вы можете использовать встроенную функцию запроса .json()
:
myResponse.json()
Или вы можете выбрать обнаружение персонажа с помощью chardet
. Chardet - это библиотека, разработанная на основе исследования. Библиотека имеет одну функцию: detect
. Detect может обнаружить наиболее распространенные кодировки, а затем использовать их для кодирования вашей строки.
import chardet
json.loads(myResponse.content.decode(chardet.detect(myResponse.content)["encoding"]))