美文网首页python
2020-04-21:json模块的例子

2020-04-21:json模块的例子

作者: 烂笔头2020 | 来源:发表于2020-04-21 15:50 被阅读0次

    下面的代码示例是对昨天的《json格式存储数据》最后的重构示例的一个改写,是在学习这个模块的一个自我的思考和结合运用。

    # -*- encoding: utf-8 -*-
    import json
    #在原有基础上进行修改
    #进行用户注册,如果检查到用户名已存在就提示用户名已存在,询问是否进行登录
    #用户名不存在则进行密码输入,保存在josn文件中,并显示注册成功,询问是否进行登录
    #登录操作,输入用户名并进行密码验证
    
    filename = "username.json" #存储字典的json文件
    
    def get_username():
        """如果存储了用户名,就提示是否登录"""
        input_name=input("please input your name:\n")
        filename = "username.json"
        with open(filename) as f_obj:
            username_dic = json.load(f_obj)
            #判断用户是否存在
            is_exsit=0
            for name in username_dic.keys():
                if input_name==name:
                    is_exsit=1
                    break
            # 如果存在用户
            if is_exsit==1:
                print("User name already exists,Do you log in directly?\n")
                bool=input("y or n ?\n")
                if bool=='y':
                    password = input('please input your password:\n')
                    if password==username_dic[input_name]:
                        print("Login successful!\n")
                    else:
                        print("Password error,exited!\n")
                if bool=='n':
                    print("Exited!\nBye Bye!")
                return input_name
            else:
                print("User does not exist !")
    
    
    def get_new_username():
        """提示用户输入用户名进行注册"""
        # 在josn文件中追加内容(要json文件已存在)
        filename = "username.json"
        temp_dic = {}
        input_name = input("Please set your user name\n")
        temp_dic[input_name] = input('please input your password!\n')
        try:
            with open(filename) as f_obj:
                username_dic = json.load(f_obj)
                for i in temp_dic:
                    username_dic[i] = temp_dic[i]
                with open(filename, "w") as f_obj:
                    json.dump(username_dic, f_obj)
        except:
            with open(filename, 'w') as f_obj:
                json.dump(temp_dic, f_obj)
        return input_name
    
    def greet_user():
        """问候用户,并指出其名字"""
        username=get_username()
        if username:
            print( username + "!")
        else:
            username=get_new_username()
            print("we'll remember your name when you come back," + username + "!")
    
    greet_user()
    

    运行该程序:
    1、提示用户不存在进行用户注册:


    用户不存在

    2、用户已存在,进行登录:


    登录成功
    3、用户已存在,不进行登录:
    不登录
    4、用户已存在,密码错误:
    密码错误

    看看username.json文件:


    username.json

    相关文章

      网友评论

        本文标题:2020-04-21:json模块的例子

        本文链接:https://www.haomeiwen.com/subject/nvmuihtx.html