我有一个带转义数据的字符串,如
escaped_data = '\\x50\\x51'
print escaped_data # gives '\x50\x51'
什么Python函数会覆盖它,所以我会得到
raw_data = unescape( escaped_data)
print raw_data # would print "PQ"
答案 0 :(得分: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'
来自Unicode str
对象:
>>> import codecs
>>> escaped_data = '\\x50\\x51'
>>> codecs.decode(escaped_data, "unicode_escape")
'PQ'
答案 1 :(得分:7)
您可以使用'unicode_escape'编解码器:
>>> '\\x50\\x51'.decode('unicode_escape')
u'PQ'
或者,'string-escape'将为您提供经典的Python 2字符串(Python 3中的字节):
>>> '\\x50\\x51'.decode('string_escape')
'PQ'
答案 2 :(得分:3)
escaped_data.decode('unicode-escape')
有帮助吗?
答案 3 :(得分:-4)
尝试:
eval('"' + raw_data + '"')
它应该有用。