gpt4 book ai didi

python - BDB Python接口(interface)读取BDB时出错

转载 作者:太空宇宙 更新时间:2023-11-03 19:39:23 25 4
gpt4 key购买 nike

bsddb.db.DBInvalidArgError: (22, '无效参数 --/dbs/supermodels.db: 意外的文件类型或格式')

此错误是否是 BDB 版本(1.85 或 3+)不兼容造成的?如果是这样,我该如何检查版本、排除故障并解决此错误?

最佳答案

是的,这当然可能是由于旧版本的 db 文件造成的,但如果您发布生成此异常的代码和完整的回溯,将会有所帮助。

如果没有这个,您确定您正在打开的数据库文件的类型正确吗?例如,尝试像哈希一样打开 btree 文件会引发您所看到的异常:

>>> import bsddb
>>> bt = bsddb.btopen('bt')
>>> bt.close()
>>> bsddb.hashopen('bt')
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "/usr/lib/python2.4/bsddb/__init__.py", line 298, in hashopen
d.open(file, db.DB_HASH, flags, mode)
bsddb.db.DBInvalidArgError: (22, 'Invalid argument -- ./bt: unexpected file type or format')

在 *nix 中,您通常可以使用 file 命令确定数据库的类型,例如

$ file /etc/aliases.db cert8.db 
/etc/aliases.db: Berkeley DB (Hash, version 8, native byte-order)
cert8.db: Berkeley DB 1.85 (Hash, version 2, native byte-order)

打开 1.85 版本文件失败并出现相同的异常:

>>> db = bsddb.hashopen('/etc/aliases.db')    # works, but...
>>> db = bsddb.hashopen('cert8.db')
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "/usr/lib/python2.4/bsddb/__init__.py", line 298, in hashopen
d.open(file, db.DB_HASH, flags, mode)
bsddb.db.DBInvalidArgError: (22, 'Invalid argument -- ./cert8.db: unexpected file type or format')

如果您需要迁移数据库文件,您应该查看 bdb 发行版附带的 db_dumpdb_dump185db_load 实用程序.

关于python - BDB Python接口(interface)读取BDB时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1336617/

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