0
点赞
收藏
分享

微信扫一扫

复习Python第八节之json数据

爱奔跑的读书者 2022-04-15 阅读 111

目录

JSON数据学习

1.数据交换

2.json语法:              

1). 什么是json?

2).json的库函数:

3).函数之间的差别:

4). Json来模拟以下数据库,文本文档当作数据库:


JSON数据学习

1.数据交换


              网站后台代码的数据,如何传到前端网页?

              答:通过数据库

            不同语言平台的程序,如何实现数据传输?

              答:可以通过设定一种中间格式json ,java与python都可以转化这个格式。

2.json语法:              

 1). 什么是json?

 Json使用键值对的方式表示一个业务对象(类似于字典)。

 {"键1":"值1","键2":"值2","键3":"值3"....} 多个业务对象使用 列表[ ]包含:[{…},{…},{…},{…},…]

 import json5   ,我这个是json5版本

2).json的库函数:

方法作用
json.dumps()将python对象编码成Json字符串
json.loads()将Json字符串解码成python对象
json.dump()将python中的对象转化成json储存到文件中
json.load()将文件中的json的格式转化成python对象提取出来

3).dumps()与dump()以及loads()与load()函数之间的差别:

下面是dumps()与loads() 的使用: 

#1.json转python(转成字典或者列表嵌套字典)
jsonData='{"name": "zhangsan" , "age":18,"hobby" : "play"}'
pythonData=json5.loads(jsonData)   #load方法
print(pythonData)

  结果是: 

{'name': 'zhangsan', 'age': 18, 'hobby': 'play'}
#ensure_ascii=True:默认输出ASCLL码,如果把这个该成False,就可以输出中文。
pdata='{"name":"zzz","play":"跑步"}'
jsond=json5.dumps(pdata,ensure_ascii=False)
print(jsond,type(pdata))

  结果是:

"{\"name\":\"zzz\",\"play\":\"跑步\"}" <class 'str'>

 

4). Json来模拟以下数据库,文本文档当作数据库:

首先往文本文档中写数据:

#写数据
with open (r"user.txt","w") as f:
    users='[{"uname": "zhangsan", "upwd": "123"}, {"uname": "lisi", "upwd": "123"}, ' \
          '{"uname": "wangwu", "upwd": "123"}, {"uname": "大宝", "upwd": "234"}]'
    f.write(users)

读文件并实现一个登录:

import json5
def readd():
    with open(r"user.txt","r") as f:
        jsond=f.read()
    userlist=json5.loads(jsond)
    return userlist
def login():
    msg="失败"
    name=input("请输入用户名:")
    password=input("请输入密码:")
    userlist=readd()
    for user in userlist:
        if name==user['uname'] and  password ==user['upwd']:
            msg="成功"
            print("恭喜登录成功")
    if msg=="失败" :
        print("登录失败")
    return msg
if __name__=='__main__':
    login()

       

  比上一个完整一下(读写以及其他操作,就当复习了)没有实现修改到文本文档中。

import json5

#读数据
def readd():
    with open(r"user.txt","r") as f:
        jsond=f.read()
    userlist=json5.loads(jsond)
    return userlist
#写数据(修改)
def writedata(xgname):
    userlist = readd()
    for user in userlist:
        if xgname== user['uname']:
            print(user)
            user["upwd"]=input("请输入你要修改得密码:")
            print(userlist)
        else:
            pass
           
def login():
    msg = "失败"
    name = input("请输入用户名:")
    password = input("请输入密码:")
    userlist = readd()
    for user in userlist:
        if name == user['uname'] and password == user['upwd']:
            msg = "成功"
            print("恭喜登录成功")
    if msg == "失败":
        print("登录失败")
    return msg,name

def main1():
    choice1=int(input("0代表登录,1代表创建新用户,其他任意键为退出:"))
    if choice1 ==0:
        msg,name=login()
        if msg=="成功":
            print("开始你的使用")
            choice2 = int(input("如果修改密码请按1:"))
            if choice2==1:
                writedata(name)
    elif choice1==1:
        reg()
    else:
        exit()
def reg():
    name=input("请输入新的用户:")
    password=input("请输入密码:")
    newuser={"uname":name,"upwd":password}
    userlist=readd()
    userlist.append(newuser)
    print(userlist)
if __name__=='__main__':
    main1()

借鉴资源:(53条消息) python的JSON用法——dumps的各种参数用法(详细)_爱吃草莓蛋糕的猴的博客-CSDN博客_json.dump参数

举报

相关推荐

0 条评论