序列化:將文本信息轉化爲二進制數據流。
作用:便於存儲,便於傳輸。
pickle提供四個功能:dumps,dump,loads,load
pickle支持的數據類型:1. 整數,浮點數,複數,布爾值,字符串,字節,None. 2. 列表,元組,字典,集合。3. 函數,類和對象.
1. pickle.dump(obj, file, protocol=None,)
必填參數obj表示將要封裝的對象
必填參數file表示obj要寫入的文件對象,file必須以二進制可寫模式打開,即“wb”
可選參數protocol表示告知pickler使用的協議,支持的協議有0,1,2,3,默認的協議是添加在Python 3中的協議3。
2. pickle.load(file,*,fix_imports=True, encoding="ASCII", errors="strict")
必填參數file必須以二進制可讀模式打開,即“rb”,其他都爲可選參數
3. pickle.dumps(obj):以字節對象形式返回封裝的對象,不需要寫入文件中
4. pickle.loads(bytes_object): 從字節對象中讀取被封裝的對象,並返回.
例1:
>>>import pickle
>>>List=[1,2,3,4]
>>>file=open("a.txt","wb")
>>>pickle.dump(List,file)
>>>file.close()
例 2:
>>>import pickle
>>>file=open("a.txt","rb")
>>>a=pickle.load(file)
>>>file.close()
>>>a
[1,2,3,4]
例 3 :
>>>import pickle
#序列化
>>>a="python"
>>>a_bytes=pickle.dumps(a) #沒有存入文件中
>>>a_bytes
b'\x80\x03X\x06\x00\x00\x00pythonq\x00.'
例 4:
import pickle
#反序列化
>>>b=b'\x80\x03X\x06\x00\x00\x00pythonq\x00.'
>>>b_str=pickle.loads(b)
>>>b_str
"python"