1. 程式人生 > >Python資料儲存:pickle模組的使用

Python資料儲存:pickle模組的使用

一、用於序列化的兩個模組
  json:用於字串Python資料型別間進行轉換
  pickle: 用於python特有的型別python的資料型別間進行轉換
  json提供四個功能:dumps,dump(存入file),loads,load(從file讀取)
  pickle提供四個功能:dumps,dump,loads,load

二、Pickle模組中常用函式

(1)pickle.dump(obj, file, [,protocol])

        函式的功能:將obj物件序列化存入已經開啟的file中。

  • obj:想要序列化的obj物件。
  • file:檔名稱。
  • protocol:序列化使用的協議。如果該項省略,則預設為0。如果為負值或HIGHEST_PROTOCOL,則使用最高的協議版本。
#dumps功能
import pickle
data = ['1','3','4']
#將data中python的特殊資料形式存為只有python語言認識的字串
a = pickle.dumps(data)
print(a)

(2)pickle.load(file)

        函式的功能:將file中的物件序列化讀出。

  • file:檔名稱。
# loads功能
# 將pickle資料轉換為python的資料結構
b = pickle.loads(a)
print(b)

(3)pickle.dumps(obj[, protocol])

  • 函式的功能:將obj物件序列化為string形式,而不是存入檔案中。

  • obj:想要序列化的obj物件。
  • protocal:如果該項省略,則預設為0。如果為負值或HIGHEST_PROTOCOL,則使用最高的協議版本。
# dump功能
# dump 將資料通過特殊的形式轉換為只有python語言認識的字串,並寫入檔案
with open('D:/tmp.pk', 'w') as f:
     pickle.dump(data, f)

(4)pickle.loads(string)

       函式的功能:從string中讀出序列化前的obj物件。

  • string:檔名稱。
# load功能
# load 從資料檔案中讀取資料,並轉換為python的資料結構
with open('D:/tmp.pk', 'r') as f:
     data = pickle.load(f)