Стандартная рабочая процедура: Прочитать сообщение об ошибке.
«плохой символ в формате структуры» означает, что он говорит.
Стандартная рабочая процедура: Проверьте документы . Здесь он говорит: « first [мой акцент] символ строки формата может использоваться для указания порядка байтов, размера и выравнивания упакованных данных» и переходит к списку =
как возможность. В следующем разделе (Формат символов) перечислено много букв , включая I
.
Вывод: ваша строка формата должна быть "=III"
.
Примечание. Проблема вообще не имеет ничего общего с буфером назначения, не говоря уже о его базовом типе C:
>>> import struct
>>> struct.pack("=I=I=I", 1, 2, 3)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
struct.error: bad char in struct format
>>> struct.pack("=III", 1, 2, 3)
'\x01\x00\x00\x00\x02\x00\x00\x00\x03\x00\x00\x00'
>>>