day04 Python 序列化
''' 序列化的作用:将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。 以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。 个人理解:序列化将内存中的一个对象存入硬盘(文件),而反序列化将硬盘中的对象重现到内存中。 Python中的序列化: 1)json模块:dump/load dumps/loads dump/load直接将对象序列化到硬盘中,dumps/loads 则是将对象序列化成字符串 2)pickle模块: dump/load dumps/loads 类似json模块,值得注意的是pickle默认是用来操作二进制文件的 ''' # import json # # # json.dump and load 测试 # obj1={1:"shabi1",2:"shabi2"} # obj1_file=open('obj1.txt','w') # json.dump(obj1,obj1_file) # obj1_file=open('obj1.txt','r') # obj1=json.load(obj1_file) # print(obj1) # #json.dumps and loads 测试 # obj1_dumps=json.dumps(obj1) # print(obj1_dumps,type(obj1_dumps)) # obj1_loads=json.loads(obj1_dumps) # print(obj1_loads,type(obj1_loads)) import pickle #pickle.dump and load 测试 obj2={3:"shabi3",4:"shabi5"} obj2_file=open("obj2.txt",'wb') #注意,这里打开文件的格式要使用二进制,pickle默认是操作二进制文件的 obj2_dump=pickle.dump(obj2,obj2_file) obj2_file=open("obj2.txt",'rb') obj2_load=pickle.load(obj2_file) print(obj2_load) #pickle.dumps and loads 测试 obj2_dumps=pickle.dumps(obj2) print(obj2_dumps) obj2_loads=pickle.loads(obj2_dumps) print(obj2_loads)