Python 3.8 Распаковка структуры - struct.error: для распаковки требуется буфер в 1 байт - PullRequest
2 голосов
/ 24 января 2020

Я пытаюсь распаковать python struct в Python 3.8 и получаю ошибку

TypeError: требуется объект, похожий на байты, а не 'int'

. Тот же код прекрасно работает в Python 2.7

import struct
hexval= b'J\xe6\xe7\xa8\x002\x10k\x05\xd4\x7fA\x00\x04\n\x90\x1a\n'

aaT = struct.unpack('>H',hexval[4:6])
aa = aaT[0] 
print("aa",aa)                      

bbT = struct.unpack(">B",hexval[12])
bb = bbT[0]&0x3      # just lower 2 bits
print("bb",bb)

Вывод:

aa 50

Traceback (последний вызов был последним): File "./sample.py", строка 9, в bbT = struct.unpack ("> B", hexval [12]) TypeError: требуется объект, похожий на байты, а не 'int'

Когда я преобразован в байт

Я получаю ошибку, подобную этой.

Traceback (последний вызов был последним): файл "sample.py", строка 9, в bbT = struct.unpack (" > B ", байты (hexval [12])) struct.error: для распаковки требуется буфер в 1 байт

Как мне распаковать эти двоичные данные

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...