'str'对象没有属性'decode'

时间:2015-03-13 11:10:52

标签: python string python-3.x binary hex

我试图将十六进制字符串解码为二进制值。 我在互联网上找到了以下命令来完成它,

string_bin = string_1.decode('hex')

但是我说错误

'str' object has no attrubute 'decode'

我正在使用python v3.4.1

2 个答案:

答案 0 :(得分:11)

您无法解码字符串对象;它们已经解码。你必须使用不同的方法。

您可以使用codecs.decode() functionhex应用为编解码器:

>>> import codecs
>>> codecs.decode('ab', 'hex')
b'\xab'

这适用于Binary transform编解码器;它相当于使用base64.b16decode() function,输入字符串转换为大写:

>>> import base64
>>> base64.b16decode('AB')
b'\xab'

您还可以使用binascii.unhexlify() function来解码'十六进制数字到字节的序列:

>>> import binascii
>>> binascii.unhexlify('ab')
b'\xab'

无论哪种方式,您都会获得bytes个对象。

答案 1 :(得分:1)

使用binascii

import binascii

binary_string = binascii.unhexlify(hex_string)