美文网首页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