Python中的扁平文件键值存储
我在找一个简单的、可以随身携带的键值存储工具,想用Python来实现。我打算用字符串作为键,值可以是字符串或者列表。我看过ZODB,但我想找一个更常用、更新更活跃的工具。Python里的dmb模块有没有需要系统库或者数据库服务器(比如mysql之类)的?还是说我可以直接用它们写入文件呢?
如果一个dbm不支持Python的列表,我想我可以把它转换成字符串再存储,对吧?
4 个回答
5
Python自带了对sqlite的支持,这个功能已经包含在标准库里。不过为了简单起见,你可以使用shelve。
http://docs.python.org/library/shelve.html
补充一下:我还没有测试过这个,但dbm可能对你有帮助。它是一个自1979年以来就在UNIX上使用的键值数据库。
http://docs.python.org/library/anydbm.html#module-anydbm,如果你需要序列化功能,可以使用pickle。
7
你可以考虑使用 h5py,这是一个可以让你在Python中使用HDF5的工具。
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'
3
抱歉问一个显而易见的问题,但一个JSON文件不就可以满足你的需求吗?