Python 将十六进制字符串转换为字节值

Python convert hex string to byte value

我有这个字节串:

output1 = 'fef00a01'

我正在尝试将其转换为字节:

output2 = b'\xfe\xf0\n\x01'

这不满足条件:

output1 == output2 # <--- returns False

我怎样才能做到 return 正确?

outpu1 是表示十六进制值的字符串。你的比较总是会产生 false 而无需某种转换(它们是下面的两个不同对象)。这类似于测试 '123' == 123.

基本上,您需要在比较之前将该字符串转换为字节。使用类似 binascii 的方法将十六进制字符串转换为实际字节,如下所示:

import binascii

output1 = binascii.unhexlify('fef00a01')

显然,很简单:

>>> bytes.fromhex(output1) 
b'\xfe\xf0\n\x01'