Различное представление класса 'байтов' в Python 3

1

У меня есть две переменные 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 в вывод второй строки. Есть ли способ лучше?

  • 2
    Может быть, это дублирование, но я был смущен другим ответом. 'Обычная' строка была использована в качестве входных данных в другом обсуждении, и здесь автор использует строку типа 'b' .. ''. Пожалуйста, обратите внимание, я запутался и не могу использовать правильную формулировку. Исправления, касающиеся этого приветствия.
Теги:
class
python-3.x
bytestring

1 ответ

2
Лучший ответ

Вы можете использовать binascii.a2b_hex() для получения шестнадцатеричного представления двоичных данных:

In [5]: binascii.a2b_hex(s)
Out[5]: b')\x00\xbc\xe06\x04\t<\x00\x00\x80'

Ещё вопросы

Сообщество Overcoder
Наверх
Меню