Проблема с кириллицей

Liluletta

Новичок
Пользователь
Ноя 28, 2024
1
0
1
Python:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import json

d = {'a':'текст',
     'b':{
         'a':'текст2',
         'b':'текст3'
     }}
print(str(d))

w = open('log', 'w')
json.dump(d,w)
w.close()
В итоге получаю:
{“a”: “\u0442\u0435\u043a\u0441\u0442”, “b”: {“a”: “\u0442\u0435\u043a\u0441\u04422”, “b”: “\u0442\u0435\u043a\u0441\u04423”}}

Если не сложно то подскажите пожалуйста решение этой проблемы.
 

PYDEV

Пользователь
Пользователь
Авг 31, 2023
75
18
8
Python:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import json

d = {'a':'текст',
     'b':{
         'a':'текст2',
         'b':'текст3'
     }}
print(str(d))

w = open('log', 'w', encoding='utf-8')
json.dump(d,w)
w.close()
 

4olshoy_blen

Популярный
Пользователь
Ноя 13, 2022
434
119
43
Не, тут проблема в другом. По умолчанию функция json.dump записывает текст в ASCII-кодировке и экранирует символы Unicode. Поэтому нужно использовать параметр ensure_ascii=False. Тогда символы Unicode будут записаны как есть.

Python:
import json

d = {'a': 'текст',
     'b': {
         'a': 'текст2',
         'b': 'текст3'
     }}
print(str(d))

with open('log', 'w') as w:
    json.dump(d, w, ensure_ascii=False)
 

PYDEV

Пользователь
Пользователь
Авг 31, 2023
75
18
8
Не, тут проблема в другом. По умолчанию функция json.dump записывает текст в ASCII-кодировке и экранирует символы Unicode. Поэтому нужно использовать параметр ensure_ascii=False. Тогда символы Unicode будут записаны как есть.

Python:
import json

d = {'a': 'текст',
     'b': {
         'a': 'текст2',
         'b': 'текст3'
     }}
print(str(d))

with open('log', 'w') as w:
    json.dump(d, w, ensure_ascii=False)
кстати да
 

Форум IT Специалистов