加载字典的最快方法

2024-04-26 18:31:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一本非常大的字典,里面有大约400万个键,我在一个大的文本文件中阅读后得到了它。我需要我的脚本运行得更快,现在我正在寻找一个合适的方法来做到这一点。我试图把字典保存在某个地方,以便更快地访问它,但使用pickle实际上是将我的速度降低到150秒,因为我只是在读它!在文本文件中阅读要快得多,这看起来真的很奇怪。我也尝试过使用sqlite将其保存到数据库中,但这也花费了太长时间。。这类问题通常如何解决?在


Tags: 方法脚本数据库sqlite字典地方速度pickle
1条回答
网友
1楼 · 发布于 2024-04-26 18:31:58

如果使用python2,我建议使用wiredtiger作为快捷键/值存储。我建议使用wiredtiger开发分支。如果您的系统上安装了swig3和python2 dev,您可以执行以下操作来安装wiredtiger:

git clone https://github.com/wiredtiger/wiredtiger  branch=develop
cd wiredtiger
./autogen.sh && ./configure  enable-python && make && make install

下面是一个小数据库类,它允许使用字符串值获取和设置字符串键:

^{pr2}$

如果wiredtiger的使用令人望而生畏,那么可以尝试使用plyvel bindings的leveldb。API非常简单,但速度慢得多。在

使用plyvel,您可以执行以下操作:

import plyvel

db = plyvel.DB('/tmp/testdb/', create_if_missing=True)
db.put('key', 'value')
# later
assert db.get('key') == 'value'

否则,如果使用python2,则存在builtin shelve module。在

相关问题 更多 >