'0102030405060708'.decode('hex')
上述代码,报错:
'str' object has no attribute 'decode'
查找原因:
https://*.com/questions/29030725/str-object-has-no-attribute-decode
You cannot decode string objects; they are already decoded. You'll have to use a different method.
You can use the codecs.decode()
function to apply hex
as a codec:
>>> import codecs >>> codecs.decode('ab', 'hex') b'\xab'
This applies a Binary transform codec; it is the equivalent of using the base64.b16decode()
function, with the input string converted to uppercase:
>>> import base64 >>> base64.b16decode('AB') b'\xab'
You can also use the binascii.unhexlify()
function to 'decode' a sequence of hex digits to bytes:
>>> import binascii >>> binascii.unhexlify('ab') b'\xab'
Either way, you'll get a bytes
object.
使用第二种方式解决了:
>>> import base64 >>> base64.b16decode('AB')