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 规则.