Аргумент к ResponseAddBody
- это смещение к сериализованному байтовому вектору (int
в вашей ошибке), а не к bytes
объекту напрямую. Это нужно сериализовать перед таблицей.
Итак, сразу после создания builder
, вызовите builder.CreateByteVector(my_bytes)
, результат которого вы передаете ResponseAddBody
позже.
Кроме того, здесь показано, как создать любой вектор вручную (выберите Python, найдите inventory
): https://google.github.io/flatbuffers/flatbuffers_guide_tutorial.html
Обратите внимание, что вы используете 2 системы сериализации, pickle и FlatBuffers. Вам было бы лучше кодировать выбранные данные непосредственно в FlatBuffers, используя, например, table Foo { a:int }
вместо вашего dict, или, если это должен быть открытый диалог, вектор table KeyValue { key:string; value:int; }
или подобный. Или союз, в зависимости от вашего варианта использования.