整数キーをシェルブに保存したい。しかし、整数キーをシェルブに保存しようとすると、エラーが発生します
トレースバック (最新の呼び出しが最後): ファイル「./write.py」の 12 行目 data[id] = {"ID": id、"名前": 名前} ファイル "/usr/lib/python2.5/shelve.py"、124 行目、__setitem__ 内 self.dict[キー] = f.getvalue() ファイル "/usr/lib/python2.5/bsddb/__init__.py"、230 行目、__setitem__ 内 _DeadlockWrap(wrapF) # self.db[キー] = 値 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 をキーとして別の辞書内に ID と名前の辞書を格納しようとしています。そして、それをファイルに保存しようとしています。
shelve と一緒に Recno または Queue DB を使用する必要がありますか? 私は初心者で、物事が混乱しています。
質問がはっきりしない場合はお知らせください。
ありがとう。