2014-06-27 84 views
0

我有導致錯誤dbm文件,當我嘗試訪問直接值:dmb.error查找數據時,我需要一些指針

>>> 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... 

它只與此文件發生,它包含醃製各類刮板到各種網站。

我無法提供實際的db數據,因爲它包含登錄數據。 我的問題是:什麼是可能解釋這個問題?我應該從哪裏開始調試呢?

如果您需要任何其他信息(數據本身除外),請讓我知道。

+0

嘗試用'flag ='c''打開。檢查'len(db.keys())' – mpez0

回答

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現在,這工作得很好。