Python: unescape «\ xXX»

У меня есть строка с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)

Решение Вопроса

Вы можете декодировать с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'
 11 февр. 2013 г., 21:35
Как вы делаете это в Python3?
 17 июн. 2013 г., 22:10
Ты можешь использоватьunicode_escape, заbytes объект, то же самое ... дляstr объекты, которые вы можете сделать:import codecs; codecs.decode('\\x50\\51', "unicode_escape")... я отредактировал ответ, может кто-нибудь его пересмотреть?

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

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

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

Пытаться:

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

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

 08 июн. 2012 г., 09:49
Пожалуйста неeval; что если raw_data был введен пользователем?
 08 июн. 2012 г., 09:50
это Ева ^ Хил.

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

Ваш ответ на вопрос