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中所有的数据类型) 不一一举例了。