今
日
鸡
汤
横汾路,寂寞当年箫鼓,荒烟依旧平楚。
大家好,我是Python进阶者。
一、前言
前几天在Python最强王者交流群【 】问了一个Python项目实战的问题,问题如下:请问,我如何每次运行程序时,都会将数据添加到对应的keys中,而不是重新创建一个dict啊。
二、实现过程
这里【东哥】基于粉丝的代码,做了一份修改,修改后的代码如下:
import json
def load_data():
try:
with open('user.json', 'r', encoding='utf-8') as f:
return json.load(f)
except FileNotFoundError:
return {
"用户名": [],
"密码": [],
"邮箱": []
}
def login(data):
print("欢迎来到图书管理系统注册页面~")
while True:
username = input("请输入用户名:\t")
if len(username) < 5:
print("用户名不能小于5位")
else:
if username not in data["用户名"]: # 避免重复的用户名
data["用户名"].append(username)
email = input("请输入邮箱:\t")
if email.endswith('@zxs.com'):
if email not in data['邮箱']: # 避免重复的邮箱
data['邮箱'].append(email)
password = input("请输入密码:\t")
if len(password) >= 6:
data['密码'].append(password)
print(f"Tips: 恭喜{username}注册成功,请前往登录")
save(data)
break
else:
print("密码不能小于6位")
else:
print("邮箱格式错误,邮箱后缀必须是@zxs.com")
else:
print("邮箱已存在,请使用其他邮箱注册")
else:
print("用户名已存在,请使用其他用户名注册")
def save(data):
try:
with open('user.json', 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=4)
except Exception as e:
print("文件写入失败,请检查文件路径")
if __name__ == '__main__':
data = load_data() # 加载已有数据
login(data) # 调用登录函数
顺利地解决了粉丝的问题。
领取专属 10元无门槛券
私享最新 技术干货