Python序列化是指將數據結構或對象轉換成可存儲或可傳輸的格式的過程。在Python中,常用的序列化方式有兩種,即pickle和JSON。
對于pickle序列化方式,它可以將一個Python對象轉換成字節流(二進制流)進行存儲或傳輸。下面是一個示例代碼:
import pickle # 創建一個Python對象 person = {"name": "Tom", "age": 20, "gender": "male"} # 序列化成字節流 bytes_person = pickle.dumps(person) # 將字節流存儲到文件中 with open("person.pkl", "wb") as f: f.write(bytes_person) # 從文件中讀取字節流并反序列化成Python對象 with open("person.pkl", "rb") as f: bytes_person = f.read() new_person = pickle.loads(bytes_person) print(new_person) # 輸出{"name": "Tom", "age": 20, "gender": "male"}
對于JSON序列化方式,它可以將一個Python對象轉換成JSON格式的字符串進行存儲或傳輸。下面是一個示例代碼:
import json # 創建一個Python對象 person = {"name": "Tom", "age": 20, "gender": "male"} # 序列化成JSON字符串 json_person = json.dumps(person) # 將JSON字符串存儲到文件中 with open("person.json", "w") as f: f.write(json_person) # 從文件中讀取JSON字符串并反序列化成Python對象 with open("person.json", "r") as f: json_person = f.read() new_person = json.loads(json_person) print(new_person) # 輸出{"name": "Tom", "age": 20, "gender": "male"}
需要注意的是,如果Python對象中包含了一些特殊的數據類型,比如字典中嵌套了元組等,那么在序列化時可能會出現問題,因為這些特殊的數據類型不一定能被序列化,解決方法可以是編寫自定義的序列化和反序列化函數。
上一篇vue input求差
下一篇python 幻方矩陣