Pythonのpickle
モジュールを使ったオブジェクトのシリアライズとデシリアライズについての簡単なメモです。pathlib
を使ってファイルパスを指定する方法も含めます。
オブジェクトのシリアライズ(保存) #
pickle
を使ってオブジェクトをファイルに保存します。
import pickle
from pathlib import Path
# シリアライズするオブジェクトを作成
my_data = {'key': 'value', 'number': 42}
# 保存先のパスを指定し、オブジェクトを保存
path = Path('data.pkl')
with path.open('wb') as file:
pickle.dump(my_data, file)
オブジェクトのデシリアライズ(読み込み) #
pickle
を使ってファイルからオブジェクトを復元します。
import pickle
from pathlib import Path
# 読み込むファイルのパスを指定
path = Path('data.pkl')
# ファイルからオブジェクトを読み込む
with path.open('rb') as file:
data_loaded = pickle.load(file)
print(data_loaded)
注意点 #
pickle
は便利ですが、特にデシリアライズ時には注意が必要です。pickle.load()
は任意のコードを実行できるため、信頼できるデータ以外を読み込むのは危険です。必ず信頼できるデータソースのみを使う必要があります。