python平面文件键值存储



我正在寻找一个平面文件,可移植的键值存储在Python。我将使用字符串作为键,字符串或列表作为值。我看了看ZODB,但我想要一些更广泛使用和更积极发展的东西。Python中的任何dmb模块都需要系统库或数据库服务器(如mysql或类似的),或者我可以用它们中的任何一个写入文件吗?

如果dbm不支持python列表,我想我可以直接序列化它吗?

您可以考虑h5py,它是HDF5的Python接口。

In [1]: import h5py
In [2]: f = h5py.File('test.hdf5', 'w')
In [3]: f['abc'] = [1, 2, 3]
In [4]: f['d'] = 'hello'
In [5]: f.close()
In [6]: f2 = h5py.File('test.hdf5', 'r')
In [7]: f2['abc'].value
Out[7]: array([1, 2, 3])
In [8]: list(f2['abc'])
Out[8]: [1, 2, 3]
In [10]: f2['d'].value
Out[10]: 'hello'

默认支持sqlite,并包含在标准库中,但为了简单起见,您可以使用shelve

http://docs.python.org/library/shelve.html

编辑:我还没有测试过,买dbm可能是你的解决方案。自1979年以来,它是UNIX上的键值数据库。

http://docs.python.org/library/anydbm.html#module-anydbm如果你需要序列化,你可以使用pickle

很抱歉问一个明显的问题,但是JSON文件不会很好地为您服务吗?

您可以查看shelve模块。它在底层使用pickle,并允许您创建在启动之间持续存在的键值查找。

此外,具有dumpload方法的json模块也可能工作得很好。

最新更新