У меня есть две переменные bytes
класса в python3.
print(string1) --> b'2900BCE03604093C000080'
print(bytes.fromhex(string1.decode('utf8'))) --> b')\x00\xbc\xe06\x04\t<\x00\x00\x80'
print(type(string1)) --> <class 'bytes'>
print(type(bytes.fromhex(string1.decode('utf8')))) --> <class 'bytes'>
Странные значения во втором выходе существуют из-за ascii-интерпретации некоторых шестнадцатеричных значений.
Мой вопрос заключается в том, как легче преобразовать string1
в вывод второй строки. Есть ли способ лучше?
Вы можете использовать binascii.a2b_hex()
для получения шестнадцатеричного представления двоичных данных:
In [5]: binascii.a2b_hex(s)
Out[5]: b')\x00\xbc\xe06\x04\t<\x00\x00\x80'