【问题标题】:Efficient method to store Python dictionary on disk?在磁盘上存储 Python 字典的有效方法?
【发布时间】:2011-01-05 06:45:28
【问题描述】:

在磁盘上存储 Python 字典最有效的方法是什么?我现在知道的唯一方法是纯文本和pickle 模块。

编辑:很抱歉不是很清楚。高效是指最快的执行速度。字典将包含可变对象,这些对象将保存要解析和修改的信息。

【问题讨论】:

  • 这在很大程度上取决于您希望如何使用字典。根据您的问题,没有一个好的答案。
  • 最快的执行速度是什么?您是否在 Python 字典中重新实现数据库?字典有多大?如果条目数足够多,SQLite 或 BDB 可能会更快。
  • 键的数量将达到数千。与具有这么多值的数据库相比,字典的性能会显着下降吗?

标签: python dictionary disk pickle


【解决方案1】:

shelve也不错

this persistent dictionary recipe

对于使对象与存储保持同步的便捷方法,有用于 python 的 ORM SQLAlchemy

如果您只需要一种通过某个键存储字符串值的方法,那么可以使用 dbm.ndbm 和 dbm.gnu 模块。

如果您需要超高效的分布式键值缓存,例如 memcached for python...

【讨论】:

  • shelve 通常是你所需要的,除非你需要超快的性能,在这种情况下你应该使用实际的数据库。
  • 搁置是否尽可能使用 cPickle?
  • 它确实使用了 cPickle(如果可用),您也可以通过设置 shelve.Pickler 来覆盖它
  • 谢谢。我使用 shelve 实现了我的字典,效果很好。
【解决方案2】:

JSON 和 YAML 也可以很好地工作。

取决于您所说的“高效”是什么意思?文件大小?需要时间?你需要写多少代码?

您可以使用timeit 模块来确定什么符合您的“高效”特定标准。

【讨论】:

  • @linkmaster03:请用其他有用的事实更新您的问题。在答案中隐藏有关 cmets 的重要信息无助于任何人理解您的问题。
猜你喜欢
  • 2022-06-10
  • 1970-01-01
  • 2013-06-16
  • 2012-05-13
  • 1970-01-01
  • 1970-01-01
  • 2011-04-13
  • 1970-01-01
  • 2019-07-03
相关资源
最近更新 更多