0

我有一个 dbm 文件,当我尝试直接访问一个值时会导致错误:

>>> import dbm
>>> db = dbm.open('scrapers','c')
>>> key1 = db.keys()[0]
>>> db[key1]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
dbm.error
>>> db.get(key1)
'(dp1\nS\'username\'\np2\nNsS\'password\'...etc...

它只发生在这个文件中,它包含各种网站的腌制类刮板。

我无法提供实际的数据库数据,因为它包含登录数据。我的问题是:这个问题有什么可能的解释?我应该从哪里开始调试呢?

如果您需要任何其他信息(数据本身除外),请告诉我。

4

1 回答 1

0

原来有一个 dbm 的细节在 python dbm 文档中没有解释:

The sum of the sizes of a key/content pair must not exceed the internal block size (normally between 512 and 4096 bytes).

我现在正在使用gdbm,效果很好。

于 2014-07-27T13:35:29.457 回答