Выбор ответа Junior Стандартная библиотека обновлено
Кириллица в json.dumps
Вопрос
Почему json.dumps({"name": "Аня"}) выдаёт {"name": "\u0410\u043d\u044f"} и как получить читаемый текст?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Мешает ensureascii=True, нужно ensureascii=False. Оба варианта валидный JSON, но по умолчанию json.dumps экранирует всё, что вне ASCII.
Варианты ответа
- Нужно передать
encoding="utf-8"вjson.dumps - json не поддерживает кириллицу, только ASCII
- Нужно вызвать
.decode("unicode_escape")у результата - Мешает
ensure_ascii=True, нужноensure_ascii=Falseправильный ответ
Разбор
Оба варианта валидный JSON, но по умолчанию json.dumps экранирует всё, что вне ASCII. С ensure_ascii=False строка останется читаемой, а при записи в файл важно открыть его с encoding="utf-8". Параметра encoding у dumps в Python 3 нет, а результат уже строка, не bytes.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.