← Все вопросы

json.dump пишет русские буквы как \u0440\u0443 — как сделать читаемо?

Задан 3 месяца назад885 просмотров2 ответа
17

Сохраняю словарь с русскими значениями в JSON, а в файле вместо кириллицы всякие \u0440\u0443\u0441. Технически валидно, но глазами не прочитать. Как записать нормальными буквами?

2 ответа

26
✓ Принятый ответ — помог автору

По умолчанию json.dump экранирует всё не-ASCII. Отключается флагом ensure_ascii=False, и не забудь открыть файл в utf-8:

import json

data = {'город': 'Москва', 'код': 77}
with open('out.json', 'w', encoding='utf-8') as f:
    json.dump(data, f, ensure_ascii=False, indent=2)

Теперь в файле будет "город": "Москва". indent=2 ещё и красиво отформатирует. encoding='utf-8' обязателен — иначе на Windows запись может упасть на кириллице.

Мария Сергеевна Связка ensure_ascii=False + encoding='utf-8' — именно вдвоём, по отдельности грабли · 3 месяца назад
5

Добавь ensure_ascii=False.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект