Как сохранить JSON с кириллицей без экранирования символов

Liluletta

Новичок
Пользователь
Ноя 28, 2024
1
0
1
Хочешь быстро подрочить? Загляни на эти секс-камеры, где полно 18+ подростков, татуированных альтернативных шлюшек, скучающих милф и пар, трахающихся перед камерой. Загляни в бесплатный секс-чат, зайди в xxx-чат, скажи телке «раздвинь ножки», и она послушается. Кончи, уйди — никаких писем, никаких денег, только грязные камеры для взрослых днем и ночью.

Братан, эти секс-камеры просто дикие, с сотнями веб-моделей, которые круглосуточно занимаются грязными штучками. Тщательно подобранный список камер для взрослых, где извращенные подростки скачут на XL-фаллоимитаторах, свингерские пары трахаются в xxx-чатах, пока я каждую ночь дрочу. Нажми на любое секс-шоу в прямом эфире, выбери комнату, бесплатно, пока не перейдешь в приват, чтобы быстро кончить, ха-ха, лучшая бесплатная порно-камера в прямом эфире.
 
Последнее редактирование:

@PYWAVE

Администратор
Команда форума
Администратор
Модератор
Авг 31, 2023
88
22
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
465
128
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)
 

@PYWAVE

Администратор
Команда форума
Администратор
Модератор
Авг 31, 2023
88
22
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)
кстати да
 

Dr. Mundo

Администратор
Команда форума
Администратор
Модератор
Пользователь
Фев 13, 2024
29
1
3
Использовать параметр ensure_ascii=False в json.dump():

Python:
import json

d = {'a':'текст',
     'b':{
         'a':'текст2',
         'b':'текст3'
     }}

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

Или если вам нужно вывести в консоль:

Python:
print(json.dumps(d, ensure_ascii=False))

Параметр ensure_ascii=False говорит JSON encoder'у не преобразовывать не-ASCII символы в их Unicode-последовательности (\uXXXX).


Также важно указать кодировку UTF-8 при открытии файла, чтобы корректно сохранить кириллицу.


После этих изменений содержимое файла будет читаемым:

Код:
{"a": "текст", "b": {"a": "текст2", "b": "текст3"}}
 

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