1.pickle
# 把變數從記憶體中(程式)變成可以儲存或傳輸的過程就稱為序列化,在 python 中稱為 pickling,序列化後就可以把內容存到硬碟
# 或是通過網路傳輸到其他電腦裡
# 而反序列化則相反,是把序列化的對象載入到記憶體中(程式)
# pickle module 就可以做到序列化
import pickle
d = dict(name='Josh', age=23)
pickle.dumps(d) # 序列化成一個 bytes,b'\x80\x03}q\x00(X\x04\x00\x00\x00nameq\x01X\x04\x00\x00\x00Joshq\x02X\x03\x00\x00\x00ageq\x03K\x17u.'
# 接著就可以把這個序列化後的物件寫入檔案,或是傳輸用
# 或是使用 dump 方法,直接把物件序列化寫入一個 file-like object
with open('dump.txt', 'wb') as f:
pickle.dump(d, f)
# 用 load 方法直接從一個 file-like object 反序列化成一個物件
with open('dump.txt', 'rb') as r:
p = pickle.load(r)
print(p) # {'name': 'Josh', 'age': 23}
2.json
# 前面 file 的部分有提到一些,有空再補