假设您的值是列表:
使用db = shelve.open('store',writeback=True)
然后将值附加到同一个键。
由于您的代码未打开'store'
,writeback=True
因此您必须为变量分配键的值temp = db['some variable']
,这将是
some value
,然后附加该变量,temp.append(another
value)
然后重新分配该键值,db['some variable'] =
temp
。
您的第三行代码不应该db['some variable'] = another value'
是为了替换值吗?
编辑:问题的其他可能含义?
您的意思是您想将数据库加载到您的对象中,并在关闭程序后继续使用您的“UI”代码对其进行编辑吗?如果是这样,那么您可以执行以下操作:
class Update_MyStore(MyStore):
def __init__(self, store):
db = shelve.open(store)
for i in db:
setattr(self, i, db[i])
self.items()
self.store_in_db()
Update_MyStore('store')
编辑:另一个更新选项,如果是这样的话,如果你想添加或更新特定项目:
while True:
store = shelve.open('store',writeback = True)
Item = input('Enter an item: ').capitalize() #I prefer str(raw_input('Question '))
if not Item or Item == 'Break':
break
store['item_quantity'][Item] = int(input(('Enter the number of {0} available in the store: ').format(Item)))
store['item_rate'][Item] = float(input(('Enter the rate of {0}: ').format(Item)))
store.sync()
store.close()