gpt4 book ai didi

python - 搁置:无法确定数据库类型

转载 作者:太空狗 更新时间:2023-10-29 20:24:11 27 4
gpt4 key购买 nike

我正在使用 Pycharm。首先,无论何时在 Pycharm 中导入任何模块。完整的导入行淡出。但如果 import shelve 不会淡出。此外,当我运行该文件时,出现以下错误:

Traceback (most recent call last):
File "/Users/abhimanyuaryan/PycharmProjects/shelve/main.py", line 13, in <module>
s = shelve.open("file.dat")
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/shelve.py", line 239, in open
return DbfilenameShelf(filename, flag, protocol, writeback)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/shelve.py", line 223, in __init__
Shelf.__init__(self, dbm.open(filename, flag), protocol, writeback)
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/dbm/__init__.py", line 88, in open
raise error[0]("db type could not be determined")
dbm.error: db type could not be determined

这是我的代码:

import shelve

s = shelve.open("file.dat")

s["first"] = (1182, 234, 632, 4560)
s["second"] = {"404": "file is not present", "googling": "Google to search your content"}
s[3] = ["abhilasha", "jyoti", "nirmal"]

s.sync()

print(s["first"])
print(s["second"])
print(s[3])

最佳答案

OP 在评论中解释说 'file.dat' 是由 pickle 创建的——这就是问题所在! pickle 使用任何数据库格式——它使用自己的格式!首先使用 shelve 创建 file.dat(即当 file.dat 不存在时运行 shelve yet 并将这些东西保存到其中),你会没事的。

OP 评论:“我仍然不明白这种情况下的问题是什么”。回答:问题在于 pickle 不会shelve 可以使用的任何数据库格式创建文件。使用单个模块进行序列化和反序列化——要么只是pickle,要么只是shelve——它会工作得更好:-)。

关于python - 搁置:无法确定数据库类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28132751/

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