Вопрос по python – Python: unescape «\ xXX»

13

У меня есть строка сescaped data лайк

escaped_data = '\\x50\\x51'
print escaped_data # gives '\x50\x51'

Какая функция Python могла бы ее убрать, чтобы я получил

raw_data = unescape( escaped_data)
print raw_data # would print "PQ"

Ваш Ответ

4   ответа
17

Вы можете декодировать сstring-escape.

>>> escaped_data = '\\x50\\x51'
>>> escaped_data.decode('string-escape')
'PQ'

ВPython 3.0 там нетstring-escape, но вы можете использоватьunicode_escape.

Изbytes объект:

>>> escaped_data = b'\\x50\\x51'
>>> escaped_data.decode("unicode_escape")
'PQ'

Из юникодаstr объект:

>>> import codecs
>>> escaped_data = '\\x50\\x51'
>>> codecs.decode(escaped_data, "unicode_escape")
'PQ'
Как вы делаете это в Python3?
Ты можешь использоватьunicode_escape, заbytes объект, то же самое ... дляstr объекты, которые вы можете сделать:import codecs; codecs.decode('\\x50\\51', "unicode_escape")... я отредактировал ответ, может кто-нибудь его пересмотреть?
7

>>> '\\x50\\x51'.decode('unicode_escape')
u'PQ'

В качестве альтернативы, «string-escape» даст вам классическую строку Python 2 (байты в Python 3):

>>> '\\x50\\x51'.decode('string_escape')
'PQ'
-4

Пытаться:

eval('"' + raw_data + '"')

Он должен работать.

Пожалуйста неeval; что если raw_data был введен пользователем?
это Ева ^ Хил.
3

escaped_data.decode('unicode-escape') помогает?

Похожие вопросы