序列化模块
json
json是所有语言都通用的一种序列化格式
只支持 列表 字典 字符串 数字
字典的key必须是字符串
dumps loads
在内存中做数据转换:
dumps 数据类型 转成 字符串 序列化 默认中文显示编码,参数加 ensure_ascii=False 显示中文
loads 字符串 转成 数据类型 反序列化
dump load
直接将数据类型写入文件,直接从文件中读出数据类型
dump 数据类型 写入 文件 序列化
load 文件 读出 数据类型 反序列化
json 所有语言间通用
能够处理的数据类型有 :字符串 列表 字典 数字
字典中的key只能是字符串 数字做key反序列化后会变成str 元组报错,元组做value反序列化后会变列表
json.dumps(非序列化数据) 转换成str类型的序列化数据
json.loads(序列化数据) 转换成非序列化数据 反序列化
json.dump(文件名变量(f)) 可以多次写入文件
dic = {‘key1’:‘value1’, ‘key2’:‘value2’}
with open(‘aa.log’, mode=‘a’, encoding=‘utf-8’) as f:
f.write(’\n’)
json.dump(dic, f)
json.load(文件名变量(f)) 读取时只支持一个数据类型
with open(‘aa.log’, mode=‘r’, encoding=‘utf-8’) as f:
ret = json.load(f)
print(ret)
pickle 支持python中几乎所有的数据类型
只能在python中使用
序列化的结果只能是字节
在文件操作的时候,需要用rb和wb的模式打开文件
可以多次dump和load