Python 序列化和反序列化

2021-09-24 00:06:43 字數 792 閱讀 8031

在spark中使用廣播變數時,選擇合適的序列化格式是非常重要的。這裡重點講的是python中的序列化。

1.序列化和反序列化

序列化就是把資料變成可儲存或可傳輸的過程的,只有序列化後的資料才可以寫入到磁碟或者通過網路傳輸到spark集群的其他節點上。反序列化則相反,反序列就是把序列化的變數重新轉到記憶體裡。

2.python包的使用

2.1 pickle包

pickle包主要使用的就是4個函式。這個只適用於在python環境中傳輸。

pickle.dump()

將任意物件轉化成bytes,並寫入檔案中。

pickle.dumps()

將任意物件轉化成bytes.

pickle.loads()

從bytes中反序列化出物件

pickle.load()

從檔案中反序列出物件

具體的使用可以參考: (網上的例子通常都大同小異,所以這裡就不自己寫**測試了)

另外,還有乙個與pickle功能相似的包,即cpickle,這個包底層使用c語言寫的,所以執行速度要比pickle包快。

2.2 json

為了方便在不同語言環境中進行傳遞,可以使用json、xml等標準序列化格式。json表示出來就是乙個字串,可以被所有語言讀取,也可以方便地儲存到磁碟或者通過網路傳輸。json不僅是標準格式,並且比xml更快,而且可以直接在web頁面中讀取,非常方便。json的使用方法與pickle包非常類似。

python序列化和反序列化

序列化和反序列化 程式執行的過程中,所有變數都是在記憶體中操作的,當程式一旦執行完畢,結束退出後,變數占有的記憶體就被作業系統 了。因此我們需要將某些資料持久化儲存到磁碟中,下次執行的時候從磁碟中讀取相關資料。我們將變數從記憶體中變成可以儲存或傳輸的過程稱之為序列化,在python中叫做pickli...

python 序列化和反序列化

import json print json.all 可以列印出json的所有方法 dict1 print 初始狀態 dict1 print type dict1 將python編碼轉化為json字串 str1 json.dumps dict1,ensure ascii false print 序列...

序列化和反序列化 C 序列化與反序列化。

序列化介紹 把物件用一種新的格式來表示。系列化只序列化資料。序列化不建議使用自動屬性 為什麼要序列化 將乙個複雜的物件轉換流,方便儲存與資訊交換。class program class person public int age 二進位制序列化 就是將物件變成流的過程,把物件變成byte class...