python对象保存和重新加载

2021-01-18 22:26:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在研究一个python程序,它基本上创建了5种不同类型的对象,这些对象都在一个层次结构中。例如,我的程序可能会创建一个区域对象,其中包含2000个列对象,其中包含8000个单元对象(每列4个单元),其中所有对象都基于视频输入进行交互。在

现在,我希望能够保存所有的对象状态,在视频输入改变了它们的每一个状态一段时间后。所以我的问题是如何在Python中高效地保存和重新加载数千个对象?提前谢谢!在

3条回答
网友
1楼 ·

不知道泡菜对大规模生产有多有效,但我想你要找的是object serialization。但是,您是在尝试“刷新”这些对象中的信息还是保存并加载它们?另请阅读关于“Persistence of External Objects”的部分,因为您需要为关系/关联创建与每个对象关联的字母数字标识。在

一种完全老套的方法也可以是json通知对象并存储它。您仍然需要字母数字id或某种可用的标识符来关联每个对象。在

网友
2楼 ·

你有没有看过架子、泡菜或苹果酱? http://docs.python.org/release/2.5/lib/persistence.html

网友
3楼 ·

我想你需要调查一下ZODB。在

ZODB是一个使用pickle序列化数据的对象数据库,非常擅长处理对象的层次结构,如果您的对象使用包含的persistent.Persistent基类,则会检测并仅保存提交时更改的对象;例如,不需要在每一个小的更改上写出整个层次结构。在

ZODB项目中包含一个名为BTrees的包,它支持ZODB,可以在一个地方高效地存储数千个对象。使用这些区域对象来存储列。我们使用btree来存储数百万个数据点。在

相关问题