Расшифровка строки формата \ x123 в Python - PullRequest
0 голосов
/ 18 июня 2020

Кто-нибудь знает этот тип строки? А как его преобразовать в читаемый формат в Python? Это данные из лог-файла мобильного приложения (возможно, на русском)

"title":"\x{41E}\x{442}\x{441}\x{440}\x{43E}\x{447}\x{43A}\x{430} \x{43F}\x{43E} \x{43A}\x{440}\x{435}\x{434}\x{438}\x{442}\x{443}"

Спасибо!

Ответы [ 2 ]

1 голос
/ 18 июня 2020
import json

data = r'"\x{41E}\x{442}\x{441}\x{440}\x{43E}\x{447}\x{43A}\x{430} \x{43F}\x{43E} \x{43A}\x{440}\x{435}\x{434}\x{438}\x{442}\x{443} "'

print(json.loads(data.replace('{','').replace('}','').replace('x', 'u0')))

… и на выходе будет Отсрочка по кредиту.

1 голос
/ 18 июня 2020

Для меня это действительно похоже на шестнадцатеричный код символов, я бы извлек коды, обработал их как целые числа с основанием 16 и преобразовал в символы. То есть

title = r"\x{41E}\x{442}\x{441}\x{440}\x{43E}\x{447}\x{43A}\x{430} \x{43F}\x{43E} \x{43A}\x{440}\x{435}\x{434}\x{438}\x{442}\x{443}"
codes = [code.strip('{} ') for code in title.split(r"\x") if code]
characters = [chr(int(code, 16)) for code in codes]
output = ''.join(characters)
print(output)

Вывод:

Отсрочкапокредиту
...