2024-09-28 22:21:31 发布
网友
我想用字节值设置一个flatbuffers表字段。在
到目前为止,我所做的一切都没有成功。在
namespace sint.bl; table Response { id:short; body:[byte]; }
用flatbuffer管理字节编码字段的正确方法是什么?在
ResponseAddBody的参数是对序列化字节向量(错误中的int)的偏移量,而不是直接对bytes对象的偏移量。这需要在表之前序列化。在
ResponseAddBody
int
bytes
因此,在创建builder之后,调用builder.CreateByteVector(my_bytes),其结果稍后传递给ResponseAddBody。在
builder
builder.CreateByteVector(my_bytes)
或者,下面是如何手动创建任何向量(选择Python,搜索inventory):https://google.github.io/flatbuffers/flatbuffers_guide_tutorial.html
inventory
注意,您似乎正在使用2个序列化系统,pickle和flatbuffer。最好直接在flatbuffer中对所选数据进行编码,例如使用table Foo { a:int }代替dict,或者如果它必须是一个开放的dict,table KeyValue { key:string; value:int; }的向量或类似的。或者一个联合体,这取决于你的用例。在
table Foo { a:int }
table KeyValue { key:string; value:int; }
ResponseAddBody
的参数是对序列化字节向量(错误中的int
)的偏移量,而不是直接对bytes
对象的偏移量。这需要在表之前序列化。在因此,在创建
builder
之后,调用builder.CreateByteVector(my_bytes)
,其结果稍后传递给ResponseAddBody
。在或者,下面是如何手动创建任何向量(选择Python,搜索
inventory
):https://google.github.io/flatbuffers/flatbuffers_guide_tutorial.html注意,您似乎正在使用2个序列化系统,pickle和flatbuffer。最好直接在flatbuffer中对所选数据进行编码,例如使用
table Foo { a:int }
代替dict,或者如果它必须是一个开放的dict,table KeyValue { key:string; value:int; }
的向量或类似的。或者一个联合体,这取决于你的用例。在相关问题 更多 >
编程相关推荐