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)

 

posted @ 2018-01-23 14:19  XiaoBBai  阅读(98)  评论(0编辑  收藏  举报