import json
'''
1. 什么是序列化
序列化就是把内存中数据类型转换成一种可以存储到硬盘/基于网络传输的中间格式
反序列化就是将中间格式转成相对应的数据类型
2. 为何要序列化
1. 持久保存状态
2. 数据跨平台交互
3. 如何序列化
json:
优点: 是一种通用的格式
缺点: 只能识别部分python数据类型
pickle:
优点: 可以识别所有python的数据类型
缺点: 只能被python识别
'''
# dic = {'k1': 'egon', 'k2': 'alex'}
#json.dumps() #序列化
# res = json.dumps(dic) #dumps 是把python定义的数据类型 序列化为 json格式的字符串
# print(res, type(res))
#json.loads() #反序列化
# with open('exercise2.json','wt',encoding='utf-8') as f1:
# f1.write(res) #将json格式的字符串写入文件f1
# with open('exercise2.json','rt',encoding='utf-8') as f1:
# res = json.loads(f1.read()) #f1.read() 读取文件f1,然后将读取的内容 反序列化赋值给res
# print(res,res['k1'])
#json.dump() #将序列化和写入的动作,用一行代码实现
# with open('exercise1.json', 'wt', encoding='utf-8') as f1:
# json.dump(dic, f1) # dump执行过程:其中做了dumps,然后将dumps的结果写入f1
#json.load() #将读取json文件 与 反序列化的动作 ,用一行代码实现
# with open('exercise1.json', 'rt', encoding='utf-8') as f1:
# res = json.load(f1) # load执行过程:其中做了loads,将json文件中的json文件的字符串类型反序列化成原来定义的python数据类型
# print(res, type(res))
#pickle 的用法和json一模一样,(但是pickle支持读写python中所有的数据类型) 不一一举例了。