常用模块——json模块

json模块

pickle模块和shelve模块序列化的得到数据只能被Python所解析。

通常企业开发不可能做一个单机版,都需要联网进行计算机之间的交互。

我们必须保证这个数据能够跨平台使用。

JSON是什么?

JavaScript object notation 就是对象表示法。

 对我们而言JSON就是通用的数据格式,任何语言都能够解析。

json中数据格式与Python中的数据类型的对照

json数据格式 Python数据类型
{} dict
[] list
int/float int/float
true/false True/False
null None

json的语法规范

最外层通常是一个字典或列表。

{} or []

只要你想写一个json格式的数据,那么最外层直接写{}

字符串必须是双引号。

你可以在其中嵌套任意多的层次。

json模块的核心功能

dump  dumps

load  loads

不带s 的封装了write和read功能

a.json文件

{
  "name":"msj",
  "age":25,
  "gender":"male"
}

反序列化

import json
with open(r'a.json','r',encoding='utf-8') as f:
    res = json.loads(f.read())
    print(res)
#{'name': 'msj', 'age': 25, 'gender': 'male'}

 反序列化load()

with open(r'a.json','r',encoding='utf-8') as f:
    res=json.load(f)
    print(res)

序列化dumps()

dic = {
    'egon':{
        "age":18,
        "ismale":True,
        'add':None

    }
}

res = json.dumps(dic)
with open(r'b.json','w',encoding='utf-8') as f:
    f.write(res)

输入符合Python语法的格式内容会被转换为符合json语法的。

{"egon": {"age": 18, "ismale": true, "add": null}}

反序列化dump

with open(r'c.json','w',encoding='utf-8') as f:
    json.dump(dic,f)

猜你喜欢

转载自www.cnblogs.com/msj513/p/9805444.html