什么是序列化?
序列化就是将内存中的数据类型转换成另外一种格式
即:
字典==>序列化==>其他的格式==>存到硬盘
硬盘==>读取==>其他格式==>反序列化==>字典
为什么要序列化
1, 持久爆出程序的运行状态
2, 数据的跨平台交互
如何序列化
json
优点: 这个格式是一种通用的格式,所有编程语言都能识别
缺点: 不能识别所有python类型
强调: json格式不能识别单引号
pickle
优点: 能识别所有python类型
缺点: 只能被python这门编程语言识别
import json dic={'k1':True,'k2':10,'k3':'egon','k4':'你好啊'} # # # 序列化 dic_json=json.dumps(dic) print(dic_json,type(dic_json)) # # # 持久化 with open('a.json',mode='wt',encoding='utf-8') as f: f.write(dic_json) #运行结果 {"k1": true, "k2": 10, "k3": "egon", "k4": "u4f60u597du554a"} <class 'str'> #a.json中的内容 {"k1": true, "k2": 10, "k3": "egon", "k4": "u4f60u597du554a"}
# 序列化+持久化 (会在a.json中直接写入) with open('a.json',mode='wt',encoding='utf-8') as f: json.dump(dic,f)
# # 从文件中读取json格式化的字符 with open('a.json',mode='rt',encoding='utf-8') as f: dic_json=f.read() # # # 反序列化 dic=json.loads(dic_json) print(dic,dic['k1']) # 读取文件内容+发序列化 with open('a.json',mode='rt',encoding='utf-8') as f: dic=json.load(f) print(dic['k1']) #运行结果 {'k1': True, 'k2': 10, 'k3': 'egon', 'k4': '你好啊'} True True