"1deadbeef3".decode('hex')
# Out: '\\x1d\\xea\\xdb\\xee\\xf3'
'\\x1d\\xea\\xdb\\xee\\xf3'.encode('hex')
# Out: 1deadbeef3
"1deadbeef3".decode('hex')
# Traceback (most recent call last):
#   File "<stdin>", line 1, in <module>
# AttributeError: 'str' object has no attribute 'decode'

b"1deadbeef3".decode('hex')
# Traceback (most recent call last):
#   File "<stdin>", line 1, in <module>
# LookupError: 'hex' is not a text encoding; use codecs.decode() to handle arbitrary codecs
'\\x1d\\xea\\xdb\\xee\\xf3'.encode('hex')
# Traceback (most recent call last):
#   File "<stdin>", line 1, in <module>
# LookupError: 'hex' is not a text encoding; use codecs.encode() to handle arbitrary codecs

b'\\x1d\\xea\\xdb\\xee\\xf3'.encode('hex')
# Traceback (most recent call last):
#  File "<stdin>", line 1, in <module>
# AttributeError: 'bytes' object has no attribute 'encode'

However, as suggested by the error message, you can use the [codecs](<https://docs.python.org/3/library/codecs.html>) module to achieve the same result:

import codecs
codecs.decode('1deadbeef4', 'hex')
# Out: b'\\x1d\\xea\\xdb\\xee\\xf4'
codecs.encode(b'\\x1d\\xea\\xdb\\xee\\xf4', 'hex')
# Out: b'1deadbeef4'

Note that [codecs.encode](<https://docs.python.org/3/library/codecs.html#codecs.encode>) returns a bytes object. To obtain a str object just decode to ASCII:

codecs.encode(b'\\x1d\\xea\\xdb\\xee\\xff', 'hex').decode('ascii')
# Out: '1deadbeeff'