首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我如何每次运行程序时,都会将数据添加到对应的keys中,而不是重新创建一个dict啊?

横汾路,寂寞当年箫鼓,荒烟依旧平楚。

大家好,我是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)  # 调用登录函数

顺利地解决了粉丝的问题。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/O_aMHNV_RHM64zsDINXP3K4Q0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券