有没有办法使用 Flatbuffers read/write 多个结构或行?
Is there a way to read/write multiple structures or lines using Flatbuffers?
我正在使用 Flatbuffers 作为存储数据和数据元标记的一种方式。我正在使用 Python 并且为了模拟字典,我有两个 table 结构:一个用于字典条目,一个用于保存条目向量。这是架构的示例:
// Define dictionary structure
table tokenEntry{
key:string;
value:int;
}
table TokenDict{
Entries:[tokenEntry];
}
root_type TokenDict;
我希望使用 Flatbuffers 将两个词典写入一个文件。我还想一次从文件中读取一个字典,而不是同时将它们加载到内存中。我可以一次将两者写入文件。但是,当我从文件中读取时,我会同时获得这两个结构。缓冲区保存文件中的所有数据。这不是我想要的,因为稍后我的文件中会有更多的数据。有没有办法一次只读一个?
举个例子,如果我要使用 pickle 结构,我可以将多个 pickle 写入一个文件,然后一次读回一个。我希望对 Flatbuffers 做同样的事情。
谢谢。
最好将文件编写为一系列单独的 FlatBuffers,每个 FlatBuffers 都以一个大小作为前缀。您可以在 Python 中使用 FinishSizePrefixed
执行此操作(参见 builder.py
)。
我正在使用 Flatbuffers 作为存储数据和数据元标记的一种方式。我正在使用 Python 并且为了模拟字典,我有两个 table 结构:一个用于字典条目,一个用于保存条目向量。这是架构的示例:
// Define dictionary structure
table tokenEntry{
key:string;
value:int;
}
table TokenDict{
Entries:[tokenEntry];
}
root_type TokenDict;
我希望使用 Flatbuffers 将两个词典写入一个文件。我还想一次从文件中读取一个字典,而不是同时将它们加载到内存中。我可以一次将两者写入文件。但是,当我从文件中读取时,我会同时获得这两个结构。缓冲区保存文件中的所有数据。这不是我想要的,因为稍后我的文件中会有更多的数据。有没有办法一次只读一个?
举个例子,如果我要使用 pickle 结构,我可以将多个 pickle 写入一个文件,然后一次读回一个。我希望对 Flatbuffers 做同样的事情。
谢谢。
最好将文件编写为一系列单独的 FlatBuffers,每个 FlatBuffers 都以一个大小作为前缀。您可以在 Python 中使用 FinishSizePrefixed
执行此操作(参见 builder.py
)。