首页 > 解决方案 > 有没有办法使用 Flatbuffers 读取/写入多个结构或行?

问题描述

我使用 Flatbuffers 作为存储数据和元标记与数据的一种方式。我正在使用 Python,为了模拟字典,我有两个表结构:一个用于字典条目,一个用于保存条目向量。这是架构的示例:

// Define dictionary structure

table tokenEntry{
  key:string;
  value:int;
}

table TokenDict{
  Entries:[tokenEntry];
}

root_type TokenDict;

我希望使用 Flatbuffers 将两个字典写入一个文件。我还想从文件中一次读取一个字典,而不是同时将它们加载到内存中。我可以将两者都写入文件,一次一个。但是,当我从文件中读取时,我会同时获得两个结构。缓冲区保存文件中的所有数据。这不是我想要的,因为稍后我将在文件中拥有大量数据。有没有办法一次只读一个?

例如,如果我要使用 pickle 结构,我可以将多个 pickle 写入一个文件,然后一次读回一个。我希望对 Flatbuffers 做同样的事情。

谢谢你。

标签: python-3.xfile-ioflatbuffers

解决方案


最好将文件写成一系列单独的 FlatBuffers,每个都以大小为前缀。您可以使用 Python 在 Python 中执行此操作FinishSizePrefixed(请参阅 参考资料builder.py)。


推荐阅读