json模块学习

1.序列化模块
什么叫序列化, 把内存的数据类型,转换成字符串格式, 使其存在硬盘上,或通过网络传输,因为硬盘和传输只能接受bytes,所以必须将不同的数据类型转换成字符串,就是bytes类型,此过程叫序列化过程.反过来叫反序列化
把内存数据,转成字符,叫序列化,
把字符转成内存数据,叫反序列化,
没有学习json之前我们这么序列化和反序列化.用str把数据变成字符串传入文件,用eval方法读出来
 1 data={
 2     "roles":[{"role":"动物","type":"pig","life":50},
 3              {"role":"人类","type":"关羽","life":80}]
 4 }
 5 f=open("game_status","w",encoding="utf-8")
 6 f.write(str(data))  #   把文件数据data,写入名称为game_status的文件中,str 是把数据变成字符串写入,因为写入硬盘要以字符串格式  write() argument must be str, not dict
 7 
 8 
 9 f=open("game_status","r",encoding="utf-8")
10 d=f.read()
11 d=eval(d)
12 print(d["roles"]) #把文件已eval方式读出来

2.json 的好处是python与其他语言之间数据转换,python语言json以后的数据在其他语言上可以直接反序列

json的作用就是把不同的数据类型,加上引号变成json字符串类型。比如代码:

 1 import  json
 2 dic={"name":"alex"}
 3 l=[11,22,33]
 4 s='hello'
 5 i=8
 6 data=json.dumps(dic)
 7 f=open("dic","w")
 8 f.write(data)
 9 print(data)
10 print(type(data))
只是把数据类型转成字符串存到内存的意义
json.dumps() json.loads()
1,把当前状态做传输,不丢失,通过网络共享给远程其他人
2.跨语言共享数据类型,与Java c 共同用代码.底层是字符,就是json 规则.
原文地址:https://www.cnblogs.com/xh716/p/10528267.html