**序列化:**將對象轉換爲字節序列的過程
**反序列化:**將字節序列轉換成目標對象的過程
**作用:**分佈式系統會遇到對象數據傳輸情況,如:在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}
>>>