1

Добрый день.

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

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

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

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

jfs
  • 52,361

1 Answers1

6

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

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": "фывапролджэ"}'
MaxU - stand with Ukraine
  • 149,321
  • 12
  • 59
  • 132