文章來源於:Python大數據分析

簡介

大家好,相信不少讀者朋友們都在Python中利用pickle進行過序列化操作,而所謂的序列化,指的是將程式執行時在記憶體中產生的變數物件,轉換為二進位制型別的易儲存可傳輸資料的過程,相反地,從序列化結果解析還原為Python變數就叫做反序列化。

通常我們都是用標準庫pickle進行這項操作,但其功能單一,且針對很多常見的Python物件如lambda函式無法進行序列化。而今天要給大家介紹的庫dill就可以看作增強版的pickle。

使用dill實現更豐富的序列化/反序列化操作

作為第三方庫,我們使用pip install dill完成安裝後,就可以使用它來代替pickle了:

基礎使用

dill的基礎使用與pickle一樣,使用dump/dumps進行序列化操作,load/loads進行反序列化操作,下面是一些基本的例子,我們對一些常見的物件進行序列化/反序列化操作:

import dill
import numpy as np

demo_int = 999

demo_float = 0.99

demo_dict = {'a': 999}

demo_array = np.random.rand(2, 2)

# 序列化并写出到pkl文件
with open('./demo.pkl', 'wb') as d:
dill.dump(
[demo_int, demo_float, demo_dict, demo_array],
d
)

從寫出的demo.pkl檔案中還原物件:

# 序列化并写出到pkl文件
with open('./demo.pkl', 'rb') as d:
restore_demo = dill.load(d)

restore_demo

--

--

數據分析那些事

數據分析那些事

這是一個專注於數據分析職場的內容部落格,聚焦一批數據分析愛好者,在這裡,我會分享數據分析相關知識點推送、(工具/書籍)等推薦、職場心得、熱點資訊剖析以及資源大盤點,希望同樣熱愛數據的我們一同進步! 臉書會有更多互動喔:https://www.facebook.com/shujvfenxi/