Python: unescape "\ xXX" У меня есть строка с экранированными данными вроде escaped_data = '\\x50\\x51' print escaped_data # gives '\x50\x51' Какая функция Python отменит его, чтобы я получил raw_data = unescape( escaped_data) print raw_data # would print "PQ" Ответ 1 Вы можете декодировать с помощью 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' От объекта Unicode str: >>> import codecs >>> escaped_data = '\\x50\\x51' >>> codecs.decode(escaped_data, "unicode_escape") 'PQ' Ответ 2 Вы можете использовать кодек 'unicode_escape': >>> '\\x50\\x51'.decode('unicode_escape') u'PQ' В качестве альтернативы, "string-escape" даст вам классическую строку Python 2 (байты в Python 3): >>> '\\x50\\x51'.decode('string_escape') 'PQ' Ответ 3 escaped_data.decode('unicode-escape') помогает? Ответ 4 Try: eval('"' + raw_data + '"') Он должен работать.
Ответ 1 Вы можете декодировать с помощью 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' От объекта Unicode str: >>> import codecs >>> escaped_data = '\\x50\\x51' >>> codecs.decode(escaped_data, "unicode_escape") 'PQ'
Ответ 2 Вы можете использовать кодек 'unicode_escape': >>> '\\x50\\x51'.decode('unicode_escape') u'PQ' В качестве альтернативы, "string-escape" даст вам классическую строку Python 2 (байты в Python 3): >>> '\\x50\\x51'.decode('string_escape') 'PQ'