问题描述
我想附加相同的网站帐户。但是当尝试在同一网站上保存多个帐户时,它正在替换密码。我究竟做错了什么? 这是我的代码:
def save():
websites = website_entry.get()
email = user_entry.get()
passwords = password_entry.get()
new_data = {
websites: {
"Email": email,"Password": passwords,}
}
if len(websites) == 0 or len(email) == 0 or len(passwords) == 0:
messageBox.showinfo(title="Oops!",message="Please give all the required information's")
else:
try:
with open("data.json","r") as data_file:
data = json.load(data_file)
except FileNotFoundError:
with open("data.json","w") as data_file:
json.dump(new_data,data_file,indent=4)
else:
data.update(new_data)
with open("data.json","w") as data_file:
json.dump(data,indent=4)
finally:
user_entry.delete(0,END)
website_entry.delete(0,END)
password_entry.delete(0,END)
解决方法
问题在于,当您向其中添加新数据时,您是以写入与追加模式打开 data.json
:
with open("data.json","w") as data_file:
json.dump(data,data_file,indent=4)
相反,您应该以追加模式打开 data.json
以避免覆盖文件的现有内容:
with open("data.json","a") as data_file:
json.dump(data,indent=4)