Как отключить замену кириллицы на \uXXXX в строках при конвертации в JSON
📁 python, помощь, пример
При попытке форматированного вывода JSON с помощью dump, перестают отображаться русские символы. Появляется что-то типа ""произвольное поле, например Address"": ""\u0443\u043b\u0438\u0446\u0430 \u041c\u0430 и т.д.""
Пробовал json.dumps().encode(""utf8"") и codac convert - ничего не помогает.
def load_data(filepath):n with open(filepath, 'r', encoding='utf-8') as fh: n data = json.load(fh) # загружаем из файла данные в словарь datan retu datandef pretty_print_json(data):n inf = json.dumps(data,sort_keys=False,indent=4, separators=(',', ': '))n retu inf n Воспользуйтесь параметром :
Из :
If
ensure_asciiis true (the default), the output is guaranteed to have all incoming non-ASCII characters escaped. Ifensure_asciiis false, these characters will be output as-is.
Пример:
In [41]: with open(fn, 'r', encoding='utf-8') as f: ...: data = json.load(f) ...: ...: print(json.dumps(data, ...: sort_keys=False, ...: indent=4, ...: separators=(',', ': '))) ...:{ ""\u043f\u0440\u0438\u043c\u0435\u0440"": { ""\u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a"": ""\u043f\u0440\u0438\u043c\u0435\u0440 \u0441\u043b\u043e\u0432\u0430\u0440\u044f"", ""\u0441\u043f\u0438\u0441\u043e\u043a"": [ ""\u044d\u043b\u0435\u043c\u0435\u043d\u0442 1"", ""\u044d\u043b\u0435\u043c\u0435\u043d\u0442 2"" ] }}In [42]: print(json.dumps(data, ...: sort_keys=False, ...: indent=4, ...: ensure_ascii=False, ...: separators=(',', ': '))) ...:{ ""пример"": { ""Заголовок"": ""пример словаря"", ""список"": [ ""элемент 1"", ""элемент 2"" ] }}JSON file:
{ ""пример"": { ""Заголовок"": ""пример словаря"", ""список"": [""элемент 1"", ""элемент 2""] }} Войдите чтобы оставить ответ