<
не может быть в середине строки формата, оно должно быть впереди.
Указывает порядок байтов с прямым порядком байтов и применяется ко всему пакету (но он не делает разница для однобайтовых значений, таких как указанные с B
):
>>> packet = b'\x7e\x03\xff\xff\xff\x0f\x1e\x00\x10\x01\x0c\x00\x00\x00\x00\x00'
>>> struct.unpack("<BBBBBBHBB", packet[:10])
(126, 3, 255, 255, 255, 15, 30, 16, 1)
Чтобы интерпретировать четыре байта как одно целое число без знака, используйте I
или L
:
>>> struct.unpack("<BBIHBB", packet[:10])
(126, 3, 268435455, 30, 16, 1)