搁置 - 附加一个新值
Shelve - Appending a new value
这是我的数据库在架中的样子
{"admin" : {"user1" : ["their info"]} }
我有这段代码可以附加一个新值
dict["admin"]["user2"] = ["their info]
但由于某种原因,当我实施搁置时,它不起作用。是我的代码有问题还是搁置了?
顺便说一句,这是我用来打开数据库的代码
a = shelve.open('user.db')
问题是shelve
不知道里面的变量什么时候发生内部变异。它只跟踪对 shelf its(h)elf 的修改。
您必须取消搁置对象,修改它,然后重新分配它以保存更改。
shelf = shelve.open(...)
obj = shelf["admin"] # <- unshelve
obj["user2"] = "info" # <- mutate
shelf["admin"] = obj # <- reshelve
这是我的数据库在架中的样子
{"admin" : {"user1" : ["their info"]} }
我有这段代码可以附加一个新值
dict["admin"]["user2"] = ["their info]
但由于某种原因,当我实施搁置时,它不起作用。是我的代码有问题还是搁置了?
顺便说一句,这是我用来打开数据库的代码
a = shelve.open('user.db')
问题是shelve
不知道里面的变量什么时候发生内部变异。它只跟踪对 shelf its(h)elf 的修改。
您必须取消搁置对象,修改它,然后重新分配它以保存更改。
shelf = shelve.open(...)
obj = shelf["admin"] # <- unshelve
obj["user2"] = "info" # <- mutate
shelf["admin"] = obj # <- reshelve