Day09 Json与pickle模块
1. 序列化
序列化指的是把内存的数据类型转换成一个特定的格式的内容
该格式的内容可用于存储或者传输个其他平台使用
反序列化:与序列化相反
内存中的数据类型>>>>>序列化>>>>>>>特定的格式(json或pickle格式)
内存中的数据类型<<<<反序列化<<<<<<特定的格式(json或pickle格式)
为何要用?
序列化得到的结果==>特定的格式的内容有两种用途
(1)可用于存储 >>>>用于存档
(2)传输给其他平台使用>>>>跨平台数据交互
强调:针对用途2的特定的格式应是一种通用,能够被所有语言识别的格式>>json
针对用途1的特定格式,可以是一种专用的格式>>>pickle
2.应用
2.1 json
json兼容的是所有语言通用的数据类型,不能识别某一语言所独有 的数据类型
import json
json_res=json.dumps([1,'aaaaa',{'a':1111,'b':2222},])#序列化
load_res=json.loads(json_res)#反序列化
print(json_res,load_res)
#将序列化结果写入文件
##复杂方法
import json
json_res=json.dumps([1,'aaaaa',{'a':1111,'b':2222},])
with open(r'D:\pyt\学习\python基础操作test.json','wt',encoding='utf-8') as f:
f.write(json_res)
##简单方法
s=[1,'aaaaa',{'a':1111,'b':2222},]
with open(r'D:\pyt\学习\python基础操作test.json','wt',encoding='utf-8') as f:
json.jump(s,f)
#反序列化
with open(r'D:\pyt\学习\python基础操作test.json','rt',encoding='utf-8') as f:
json.load(f)
json强调:字符串用双引号,布尔类型是小写
2.1.1猴子补丁
import json
import ujson
json.dumps=ujson.dumps
json.loads=ujson.loads
3. pickle模块
与json模块相似 python2中pickle.dump( , , protocol=2)