Python-String to Bytes转换。 Double BackSlash问题

时间:2015-10-21 11:14:07

标签: python string byte

我遇到了问题。我有这个字符串:

a=O\x8c\x90\x05\xa1\xe2!\xbe

如果我使用:

c=str.encode(a)

结果如下:

b'O\\x8c\\x90\\x05\\xa1\\xe2!\\xbe'

我需要那些双反斜杠是单反斜杠,我真的需要这种类型的数据是BYTES。我需要回复:

c=b'0\x8c\x90\x05\xa1\xe2!\xbe'

并键入(c)== bytes 有什么想法吗?

1 个答案:

答案 0 :(得分:6)

您可以将str.decode()编码为unicode-escape。然后使用所需的编码将其解码回来以获取字节数组。示例 -

c = a.decode('unicode-escape').encode('<required encoding>')

演示 -

>>> a
b'O\\x8c\\x90\\x05\\xa1\\xe2!\\xbe'
>>> c = a.decode('unicode-escape').encode('ISO-8859-1')
>>> c
b'O\x8c\x90\x05\xa1\xe2!\xbe'