1. 序列化模块
什么叫序列化, 把内存的数据类型, 转换成字符串格式, 使其存在硬盘上, 或通过网络传输, 因为硬盘和传输只能接受 bytes, 所以必须将不同的数据类型转换成字符串, 就是 bytes 类型, 此过程叫序列化过程. 反过来叫反序列化
把内存数据, 转成字符, 叫序列化,
把字符转成内存数据, 叫反序列化,
没有学习 JSON 之前我们这么序列化和反序列化. 用 str 把数据变成字符串传入文件, 用 eval 方法读出来
- data={
- "roles":[{"role":"动物","type":"pig","life":50},
- {"role":"人类","type":"关羽","life":80}]
- }
- f=open("game_status","w",encoding="utf-8")
- f.write(str(data)) # 把文件数据 data, 写入名称为 game_status 的文件中, str 是把数据变成字符串写入, 因为写入硬盘要以字符串格式 write() argument must be str, not dict
- f=open("game_status","r",encoding="utf-8")
- d=f.read()
- d=eval(d)
- print(d["roles"]) #把文件已 eval 方式读出来
2.JSON 的好处是 python 与其他语言之间数据转换, python 语言 JSON 以后的数据在其他语言上可以直接反序列
JSON 的作用就是把不同的数据类型, 加上引号变成 JSON 字符串类型. 比如代码:
- import JSON
- dic={"name":"alex"}
- l=[11,22,33]
- s='hello'
- i=8
- data=JSON.dumps(dic)
- f=open("dic","w")
- f.write(data)
- print(data)
- print(type(data))
只是把数据类型转成字符串存到内存的意义
JSON.dumps() JSON.loads()
1, 把当前状态做传输, 不丢失, 通过网络共享给远程其他人
2. 跨语言共享数据类型, 与 Java c 共同用代码. 底层是字符, 就是 JSON 规则.
来源: http://www.bubuko.com/infodetail-2986748.html