@angernicky

Как декодировать json, содержащий кириллицу?

Здравствуйте. Использую сокеты и через сериализацию json отправляю и принимаю пакеты. Но как только в json попадает кириллица, то на экран выводится полная тарабарщина в виде: \xd0\x9f\xd0\
Как мне декодировать json чтобы все символы отоброжались правильно?

# Отправка пакетов
def send_packages(conn, command):
    json_data = json.dumps(str(command))
    conn.send(bytes(json_data, 'utf-8'))

# Прием пакетов
def recieving_packages(conn):
    json_data = ''
    while True:
        try:
            data = conn.recv(8)
            json_data += data.decode('utf-8')
            return json.loads(json_data)
        except ValueError:
            continue
  • Вопрос задан
  • 1334 просмотра
Пригласить эксперта
Ответы на вопрос 3
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Комментировать
SoreMix
@SoreMix Куратор тега Python
yellow
Странное использование json.dumps(). Он принимает json объект и возвращает строку. Вы же передаете строку. Хотя, может так нужно

Для json.dumps() есть параметр ensure_ascii, отвечающий за кодировку. Попробуйте передать ensure_ascii=False
Для json.loads() есть параметр encoding
Ответ написан
svetloffs
@svetloffs
python DS ML
import json
import codecs

json.load(codecs.open('sample.json', 'r', 'utf-8-sig'))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы