我有一个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...
它只发生在这个文件中,它包含各种网站的腌制类刮刀。
我无法提供实际的数据库数据,因为它包含登录数据。 我的问题是:这个问题的可能的解释是什么?我应该从哪里开始调试这个?
如果您需要任何其他信息(数据本身除外),请告知我们。
答案 0 :(得分:0)
原来有一个dbm的细节没有在python dbm docs中解释:
The sum of the sizes of a key/content pair must not exceed the internal block size (normally between 512 and 4096 bytes).
我现在正在使用gdbm
,这很好用。