私はPython3を使用しています。shelve
ドキュメントでは、の永続バージョンとしてアドバタイズされていますdict
。ただし、私の使用法ではshelve
、タプルをキーとして許可していませんが、dictは次のことを許可しています。
import shelve
def tryShelve():
db = shelve.open("shelvefile")
db["word1"] = 1
db[("word1", "word2")] = 15
tryShelve()
このエラーが発生します:
Traceback (most recent call last):
File "<pyshell#41>", line 1, in <module>
tryShelve()
File "<pyshell#40>", line 4, in tryShelve
db[("word1", "word2")] = 15
File "C:\Python32\lib\shelve.py", line 125, in __setitem__
self.dict[key.encode(self.keyencoding)] = f.getvalue()
AttributeError: 'tuple' object has no attribute 'encode'