json

详见
用于前后端交互,传数据

(1)json.dumps()函数是将一个Python数据类型列表进行json格式的编码 (可以这么理解,json.dumps()函数是将字典转化为字符串) (2)json.loads()函数是将json格式数据转换为字典 (可以这么理解,json.loads()函数是将字符串转化为字典)


只要符合json格式的都能进行反序列化

 

import json

#(1)json.dumps()函数是将一个Python数据类型列表进行json格式的编码
# (可以这么理解,json.dumps()函数是将字典转化为字符串)

#(2)json.loads()函数是将json格式数据转换为字典
# (可以这么理解,json.loads()函数是将字符串转化为字典)

info={"name":'alex'}

ret=json.dumps(info)   # 把python字典数据类型序列化成json字符串 '{"name": "alex"}'
print(ret,type(ret))             #{"name": "alex"}  <class 'str'>


#把json字符串序列化到磁盘里(写到本地)

with open("json.txt","w") as f:
    f.write(json.dumps(info))       #此时json.text文件里就有一条数据     {"name": "alex"}

#
with open("json.txt",'r') as f:
    data=f.read()

data=json.loads(data) #把json字符串反序列为python中的字典数据类型
print(data,type(data))           #{'name': 'alex'}  <class 'dict'>

ret=json.loads('{"name":"alex"}')
print(ret,type(ret))            #{'name': 'alex'}  <class 'dict'>

ret=json.loads("true")
print(ret,type(ret))            #TRUE   <class 'bool'>

ret=json.loads("[12,34]")
print(ret,type(ret))            # [12, 34] <class 'list'>

ret=json.loads("12")
print(ret,type(ret))            #12  <class 'int'>

# ret=json.loads("{'name':'alex'}")
# print(ret)     #会报错,字典里面的键值对必须是双引号

在js中

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script>

        //js中序列号与反序列化用JSON.stringify() 与 JSON.parse()
        //json.dumps====JSON.stringify()  json.loads======JSON.parse()

        var s='{"name": "alex"}';

        var data=JSON.parse(s);       //   此时data反序列化为object对象,也就可以使用date.name

        console.log(data);            //   {name:"alex"}
        console.log(typeof data);     //   object

        var c={name:"alex"};          //  js中的key可以不加引号,也可以加单引号、双引号

        var c=JSON.stringify(c);      // {"name":"alex"}
        console.log(c)
    </script>
</head>
<body>

</body>
</html>

 

posted @ 2020-05-06 14:59  zh_小猿  阅读(187)  评论(0编辑  收藏  举报