有哪些可用的Python模块用于保存和加载数据?
2 个回答
4
这里有一个关于标准库数据持久化模块的概述。
7
优点:
- 可以以二进制格式读写Python的值。这比
pickle
(基于字符的)要快得多。
- 可以以二进制格式读写Python的值。这比
缺点:
- 并不是所有的Python对象类型都支持。有些不支持的类型,比如内置类型的子类,看起来在marshal和unmarshal时是正确的。
- 不打算对错误或恶意构造的数据提供安全保障。
- Python的维护者保留在必要时以不向后兼容的方式修改marshal格式的权利。
优点:
- 在shelf中可以存储几乎任何Python对象。
缺点:
- 不支持同时读写shelved对象。
ZODB(由@Duncan推荐)
优点:
- 透明的持久化
- 完整的事务支持
- 可插拔的存储
- 可扩展的架构
缺点:
- 不是标准库的一部分。
- 除非原始的Python对象模型可用,否则很难重新加载数据(考虑版本问题和数据可移植性)。