Преобразовать шестнадцатеричное представление Ascii в байтовом объекте в строку Ascii, используя Python3 - PullRequest
0 голосов
/ 04 февраля 2020

Я хочу преобразовать переменную, содержащую bytes объект данных Ascii, в строку.
Пример:

a=bytearray(b'31303031') 

Я хочу преобразовать ее в:

'1001'

Как это сделать в Python3?

1 Ответ

1 голос
/ 04 февраля 2020

Преобразуйте каждую пару в целое число из основания 16, получите соответствующий символ и объедините:

''.join(chr(int(a[i:i+2], 16)) for i in range(0,len(a),2))

Конечно, у вас на самом деле нет bytes объекта шестнадцатеричных чисел, но есть строка. Итак, верните строку, создайте настоящий шестнадцатеричный bytes объект и декодируйте, что является еще одним вариантом:

bytes.fromhex(a.decode('ascii')).decode('ascii')
...