我想在搁置中存储一个整数键。但是当我尝试将整数键存储在搁置中时,它给了我一个错误
回溯(最近一次通话最后): 文件“./write.py”,第 12 行,在 数据[id] = {“Id”:id,“名称”:名称} 文件“/usr/lib/python2.5/shelve.py”,第 124 行,在 __setitem__ 中 self.dict[key] = f.getvalue() 文件“/usr/lib/python2.5/bsddb/__init__.py”,第 230 行,在 __setitem__ 中 _DeadlockWrap(wrapF) # self.db[key] = value DeadlockWrap 中的文件“/usr/lib/python2.5/bsddb/dbutils.py”,第 62 行 返回函数(*_args,**_kwargs) 文件“/usr/lib/python2.5/bsddb/__init__.py”,第 229 行,在 wrapF self.db[键] = 值 TypeError:整数键只允许用于 Recno 和 Queue DB
我的代码:
#!/usr/bin/python
import shelve
data = shelve.open("data.txt")
ans = 'y'
while ans == "y":
id = input("Enter Id : ")
name = raw_input("Enter name : ")
data[id] = {"Id": id, "Name": name}
ans = raw_input("Do you want to continue (y/n) ? : ")
data.close()
我的程序有问题还是搁置根本不支持整数键?
编辑 1:
在程序中,我试图将 Id 和 Name 的字典存储在另一个以 Id 作为键的字典中。然后尝试将其存储在文件中。
我需要将 Recno 或 Queue DB 与搁置一起使用吗?我是初学者,事情很混乱。
如果我不清楚我的问题,请告诉我。
谢谢。