'str' object has no attribute 'decode' 'str' object has no attribute 'decode' python-3.x python-3.x

'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.


Use binascii:

import binasciibinary_string = binascii.unhexlify(hex_string)