gpt4 book ai didi

python - 使用 Berkeley DB(bsddb 模块)、Python

转载 作者:行者123 更新时间:2023-11-28 17:42:44 25 4
gpt4 key购买 nike

我正在使用 python 2.7.3 和 Berkeley DB 来存储数据。我没有找到关于该模块的太多信息,仅在 python docks 中。我看到那里描述了一些功能,但我没有看到关于如何从数据库中删除记录的说明。请帮助,如果你知道如何删除一条记录,并且可以使用 bsddb 吗?

最佳答案

根据 the documentation :

Once instantiated, hash, btree and record objects support the same methods as dictionaries.

因此,您可以使用 del db_object['key'] 像字典一样删除特定记录。

>>> import bsddb
>>> db = bsddb.hashopen('a.db', 'c')
>>> db['a'] = '1'
>>> db.keys()
['a']
>>> del db['a'] # <-----
>>> db.keys()
[]

db_object.pop('key') 也有效。

>>> db['b'] = '2'
>>> db.keys()
['b']
>>> db.pop('b')
'2'

del.pop() 具有不存在的 key 将引发 KeyError 或类似的异常。如果您想忽略不存在的 key ,请使用 .pop('key', None):

>>> db.pop('b') # This raises an exception
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/_abcoll.py", line 497, in pop
value = self[key]
File "/usr/lib/python2.7/bsddb/__init__.py", line 270, in __getitem__
return _DeadlockWrap(lambda: self.db[key]) # self.db[key]
File "/usr/lib/python2.7/bsddb/dbutils.py", line 68, in DeadlockWrap
return function(*_args, **_kwargs)
File "/usr/lib/python2.7/bsddb/__init__.py", line 270, in <lambda>
return _DeadlockWrap(lambda: self.db[key]) # self.db[key]
KeyError: 'b'
>>> db.pop('b', None) # This does not.
>>>

关于python - 使用 Berkeley DB(bsddb 模块)、Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22126836/

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