У меня есть список, который представляет собой смесь символов и байтов, который выглядит следующим образом:Как преобразовать список символов и байтов в список чистых байтов?
myData = ['a', '\x65', 'B', '\x66\x69', 'C']
Я хочу, чтобы преобразовать этот список в массив байтов, так что:
myByteArray = ['\x61' , '\x65', '\x42', '\x66', '\x69', '\x43']
Я пытались до сих пор является простым дисплеем на MyData -
myData = ['a', '\x65', 'B', '\x66\x69', 'C']
print " ".join(hex(ord(n)) for n in myData)
Поскольку элемент в массиве, который случается два байта, он выдает эту ошибку:
Traceback (most recent call last):
File "./test.py", line 3, in <module>
print " ".join(hex(ord(n)) for n in myData)
File "./test.py", line 3, in <genexpr>
print " ".join(hex(ord(n)) for n in myData)
TypeError: ord() expected a character, but string of length 2 found
Как преобразовать исходный список myData в массив байтов myByteArray?
Там нет никакого способа, чтобы получить Python изобразить регулярный ASCII символ как беглая последовательность, если не превратить его в эквивалентную строку. '' a'' и '' \ x61'' являются тем же символом, и Python всегда будет печатать его как 'a''. –