每次运行代码时,数据都会覆盖signupdatabase.json
的内容。
如何避免覆盖现有文件内容?
import json
with open('signupdatabase.json','w') as f:
json.dump('b',f)
json.dump('a',f)
print('good')
答案 0 :(得分:1)
有几种选择。您可以将用户名/密码存储在程序启动时从文件加载的单个dict
中,并在更新时保存。加密密码是一个好主意,但超出了这个问题。
import json
import os
import getpass
db_filename = 'signupdatabase.json'
# create on first use
if not os.path.exists(db_filename):
with open(db_filename, 'w') as f:
json.dump({}. f)
# open database
with open(db_filename) as f:
db = json.load(f)
user = input("User Name: ")
pw = getpass.getpass()
db[user] = pw
# save database
with open(db_filename, 'a') as f:
db = json.dump(db, f)
答案 1 :(得分:0)
以append
模式打开文件,并在每行后添加'\n'
。
with open('signupdatabase.json','a') as f:
json.dump('b\n',f)
json.dump('a\n',f)
不要将JSON文件用作数据库。