Python Сохранение файлов JSON в формате UTF-8

Я пытаюсь вывести некоторые символы UTF-8 в файл JSON.

Когда я сохраняю файл, они пишутся так:

{"some_key": "Enviar invitaci \ u00f3n privada"}

Вышеуказанное действует и работает. Когда я загружаю файл и печатаю 'some_key', он отображает "Enviar invitación privada" в терминале.

Можно ли в любом случае записать файл JSON с "some_key" в качестве закодированной версии, например так?

{"some_key": "Enviar invitación privada"}

2 ответа

Решение

Задавать ensure_ascii в False:

>>> print json.dumps(x, ensure_ascii=False)
{"some_key": "Enviar invitación privada"}

Используя Python 3.4.3 здесь и используя dump() вместо dumps():

    with open("example.json","w", encoding='utf-8') as jsonfile:
        json.dump(data,jsonfile,ensure_ascii=False)

это стандартный способ записи JSON в кодированный файл UTF-8.

Если вы хотите использовать экранированные кодовые точки вместо символов в вашем файле, установите ensure_ascii=True, Это пишет, например, евро-символ как \u20ac прямо в ваш файл.

Другие вопросы по тегам