我从数据库中抓取了大量数据并将其保存为"first_database.db"
使用 Python 的shelve
模块(我使用的是 Python 3.4)。我以前遇到过问题shelve
(请参阅我的旧问题),这可能是由于与我的古老操作系统(OSX 10.9.4)和gdbm/dbm.gnu
.
现在我有一个更棘手的问题:我创建了一个~170 MB的新文件,现在无论如何我只能访问一个键/值。
我知道可能的键的超集,并且尝试访问它们中的任何一个都会给我一个KeyError
(除了一个)。当我将不返回 a 的单个键的值保存KeyError
为新的搁置数据库时,它的大小只有 16 KB,所以我知道数据在 170 MB 文件中,但我无法访问它。
我只是被搞砸了吗?
此外,我制作了数据库的副本并尝试向其中添加更多键(~95)。该数据库会说它有三个键,但是当我尝试访问第三个键的值时,我收到以下错误:
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/shelve.py", line 114, in __getitem__
value = Unpickler(f).load()
_pickle.UnpicklingError: invalid load key, ''.