【发布时间】:2019-11-24 10:59:25
【问题描述】:
您好,这是我的搁置条目结构
{
'Birds' : {
'BlueOnes': ["detailsAboutBlueBird"],
'RedOnes' : ["detailsAboutRedBirds"]
}
}
我正在尝试仅删除 BlueOnes
下面是我正在使用的代码
s = shelve.open('birds.db')
del s['Birds']['BlueOnes']
但它似乎不起作用。
我是不是做错了什么o.o?
【问题讨论】:
-
s['birds']解析为普通的 Python 字典;shelve无法注意到您对其所做的更改。您要么需要对顶级对象进行显式更改(s['birds'] = s['birds']应该这样做),要么在对shelve.open()的调用中指定writeback=True以便它写回您的 每个 项曾经检索过,以防您对其进行了修改(这会影响性能)。