Python кодировки: в json файле кириллица выглядит так: \u043d\u0443\u044e \u043a\u0432

456 просмотра
0
0 Комментариев

Добрый день.

Сохраняю в файл массив в формат json. Кодировку указываю utf-8.
Код выглядит так:

with open('mylist.json',"w", encoding="utf-8") as file:
    json.dump(out, file)

В файле кириллица выглядит так: \u043d\u0443\u044e \u043a\u0432\

Понимаю, что где-то с кодировками не порядок, но не пойму где. Помогите разобраться.


Добавить комментарий

1 Ответы

Python Опубликовано 18.12.2018
0

Попробуйте так:

with open('mylist.json',"w", encoding="utf-8") as file:
    json.dump(out, file, ensure_ascii=False)
    #                    ^^^^^^^^^^^^^^^^^^

Тест:

In [97]: d = {'test':'фывапролджэ'}
 
In [98]: with open('c:/temp/mylist1.json',"w", encoding="utf-8") as file:
    ...:     json.dump(d, file)
    ...:
 
In [99]: with open('c:/temp/mylist2.json',"w", encoding="utf-8") as file:
    ...:     json.dump(d, file, ensure_ascii=False)
    ...:

Результат:

In [105]: open('c:/temp/mylist1.json', encoding='utf-8').read()
Out[105]: '{"test": "\\u0444\\u044b\\u0432\\u0430\\u043f\\u0440\\u043e\\u043b\\u0434\\u0436\\u044d"}'
 
In [106]: open('c:/temp/mylist2.json', encoding='utf-8').read()
Out[106]: '{"test": "фывапролджэ"}'

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up