Я использую данные из RESTful API, он возвращает мне строки и целочисленные значения.Однако, кажется, что он возвращает некоторые строковые значения, неправильно закодированные / декодированные (вероятно).
Ожидаемая строка:
criança
Полученная строка:
criança
Вот мойcode:
url = "https://analytics.us.algolia.com/2/searches?index={index}&startDate={yesterday}".format(index=index, yesterday=yesterday)
headers = { 'X-Algolia-Application-Id': app_id,
'X-Algolia-API-Key': app_key,
'Content-Type': 'application/json; charset=utf-8'}
response = requests.get(url, headers=headers)
response_json = json.loads(response.text)
print(response_json)
Это для скрипта Python 3.6.x, который будет получать данные из RESTful API Algolia и сохранять их в Amazon Redshift.Я пишу этот скрипт в Ubuntu 18.04, мой кодовый набор символов терминала pt_BR.UTF-8
(echo $LANG
) и UTF-8 (locale charmap
).
Я вижу, что полученные данные неверны при печатиперед сохранением в базе данных - для использования charset=utf8
.Я также могу видеть эти неправильные данные в базе данных через оператор SELECT
.
Я нашел эту Диаграмму отладки кодировки UTF-8 , она указывает, что, вероятно, это произошло из-за UTF-8байты интерпретируются как байты Windows-1252 (или ISO 8859-1).
Как я могу обработать это с помощью некоторой функции Python / lib?