有哪些可用的Python模块可以保存和加载数据?

Ben*_*min 7 python data-storage python-module data-persistence

StackOverflow上有许多分散的帖子,关于用于保存和加载数据的Python模块.

我自己熟悉jsonpickle,我也听说过pytables.那里可能还有更多.此外,每个模块似乎都符合某种目的,并且有自己的限制(例如,如果工作的话,加载一个带有泡菜的大型列表或字典需要很长时间).因此,对可能性进行适当的概述会很好.

然后,您可以帮助提供用于保存和加载数据的全面模块列表,描述每个模块:

  • 这个模块的一般用途是什么,
  • 它的极限,
  • 你为什么选择这个模块呢?

qia*_*iao 7

元帅:

  • 优点:

    • 可以以二进制格式读取和写入Python值.因此它比pickle(基于角色)快得多.
  • 缺点:

    • 并非所有Python对象类型都受支持.一些不受支持的类型(如内置类的子类)似乎可以正确编组和解组
    • 不是为了防止错误或恶意构造的数据.
    • 如果需要,Python维护者保留以向后不兼容的方式修改编组格式的权利

搁置

  • 优点:

    • 架子中的值可以是基本上任意的Python对象
  • 缺点:

    • 不支持对搁置对象的并发读/写访问

ZODB(@Duncan建议)

  • 优点:

    • 透明的持久性
    • 完整的交易支持
    • 可插拔存储
    • 可扩展架构
  • 缺点

    • 不属于标准库.
    • 无法(轻松)重新加载数据,除非用于持久化的原始python对象模型可用(考虑版本难度和数据可移植性)