Кодировка в ответе json

Рейтинг: 0Ответов: 2Опубликовано: 21.03.2023
import requests
import json

url = "http://*******:****/api/Sites?contractNumber=2222"

headers = {
    "apiKey": "****"
}

try:
    response = requests.get(url, headers=headers)
    response.raiseforstatus()# проверяем статус ответа HTTP
    jsondata = json.loads(response.content)
    with open('response.json', 'w', encoding='utf-8') as jsonfile: # добавляем параметр encoding
        json.dump(jsondata, jsonfile, indent=4) # задаем отступы для упорядочивания
    with open('response.json', encoding='utf-8') as file: # читаем из файла, указывая кодировку
        print(file.read())
except requests.exceptions.RequestException as e:
    print("Connection error:", e)

на этот запрос приходит

Name": "\u041e\u0444\u0438\u0441 \u0418\u041d\u041f\u041a \u0421\u0435\u043a\u044c\u044e\u0440\u0438\u0442\u0438 \u043f\u043e\u0434\u0432\u0430\u043b (\u043a\u0430\u0431. \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u0432)",
        "Address": "(\u043d\u0435 \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c) \u0433. \u0420\u043e\u0441\u0442\u043e\u0432-\u043d\u0430-\u0414\u043e\u043d\u0443, \u0443\u043b. \u0427\u0435\u0440\u0435\u043f\u0430\u0445\u0438\u043d\u0430, 215",

подскажите куда вставить .encode для отображения русского языка

Ответы

▲ 1

Добавил в json.dump ensure_ascii=False и всё получилось, записывает по-русски. В sublimetext3 вместо этого появились знауи вопроса в ромбике, но это уже не проблема. Спасибо CrazyElf.

▲ 0

Смотря куда отображать

n="\u041e...."
m="\u043d..."
print(n)
print(m)

Офис ИНПК Секьюрити подвал (каб. инженеров)
не реагировать) г. Ростов-на-Дону, ул. Черепахина