序列化與反序列化【python】

**序列化:**將對象轉換爲字節序列的過程
**反序列化:**將字節序列轉換成目標對象的過程
**作用:**分佈式系統會遇到對象數據傳輸情況,如:在A系統中查數據庫select * from test;這個對象要在另一個節點B展示,那麼就要把該對象傳到B節點上,網絡傳輸時是二進制流的形式,在A需要先把對象類型轉化字節流的形式,在B需要把字節流文件轉換成對象類型。

PYthon中實現

>>> #在A系統上執行 
>>>test={"a": 1, "b": 2, "c": 3}               #對象類型
>>> print test  
{'a': 1, 'c': 3, 'b': 2}
>>>
>>> import cPickle             #轉換庫
>>> 
>>> cPickle.dump(test,open("cpikele.pkl","wb"))              #dump方法將對象轉成字節流文件(反序列化)
>>> 
>>> 
>>> f =open("cpikele.pkl","r")                   #讀取轉換後的文件
>>> f.read()
"(dp1\nS'a'\nI1\nsS'c'\nI3\nsS'b'\nI2\ns."
>>> 


>>>  #在B系統是上執行
>>> data = cPickle.load(open("cpikele.pkl","rb"))                 #load方法來序列化
>>> print data 
{'a': 1, 'c': 3, 'b': 2}
>>> 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章