我试图将十六进制字符串解码为二进制值。 我在互联网上找到了以下命令来完成它,
string_bin = string_1.decode('hex')
但是我说错误
'str' object has no attrubute 'decode'
我正在使用python v3.4.1
答案 0 :(得分:11)
您无法解码字符串对象;它们已经解码。你必须使用不同的方法。
您可以使用codecs.decode()
function将hex
应用为编解码器:
>>> 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)