← Все вопросы
json.dump пишет русские буквы как \u0440\u0443 — как сделать читаемо?
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.
Ваш ответ
Войдите, чтобы ответить на вопрос.