Python: unescape “\ xXX”

Tengo una cadena con datos de escape como

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

¿Qué función de Python lo destaparía así que obtendría?

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

Puedes decodificar con string-escape .

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

En Python 3.0 no hay string-escape , pero puedes usar unicode_escape .

De un objeto de bytes :

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

Desde un objeto str Unicode:

 >>> import codecs >>> escaped_data = '\\x50\\x51' >>> codecs.decode(escaped_data, "unicode_escape") 'PQ' 

Podrías usar el codec ‘unicode_escape’:

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

Alternativamente, ‘string-escape’ te dará una cadena clásica de Python 2 (bytes en Python 3):

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

escaped_data.decode('unicode-escape') ayuda?

Tratar:

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

Deberia de funcionar.