gpt4 book ai didi

python 搁置 dbm.error?

转载 作者:太空狗 更新时间:2023-10-30 01:30:26 29 4
gpt4 key购买 nike

我正在尝试将一个字典的字典添加到搁置文件中:

>>> d = shelve.open('index.shelve')
>>> d
<shelve.DbfilenameShelf object at 0x21965f0>
>>> print(list(d.keys()))
[]
>>> d['index'] = index
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/bns/rma/local/python/lib/python3.1/shelve.py", line 124, in __setitem__
self.dict[key.encode(self.keyencoding)] = f.getvalue()
_dbm.error: cannot add item to database

索引有点大,但不是很大。它本质上是一个 float 数组:

>>> len(index)
219
>>> a = [ index[k][k1] for k in index for k1 in index[k] ]
>>> len(a)
59995
>>> all([ type(x) is float for x in a ])
True

这是什么错误?另外,模块或模块文档中是否有某个地方我应该寻找以获得有关错误代表什么的更多信息?错误消息不是很有用,至少对我来说 :)。

最佳答案

我实际上在 dbm 模块上遇到了同样的问题,它可以在我的代码库中重现,但我无法在单独的测试中重现。

我的印象是在读数据库的时候有一个锁防止写。在我的例子中,数据库是 ~200Kb,有 ~10 个键并插入 time.sleep(1) 会解决问题,暗示 时某些异步进程未完成db[key] = value.

关于python 搁置 dbm.error?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4995162/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com