python pickleの使い方
概要
- オブジェクトをシリアライズするライブラリ
- オブジェクトで参照されている別のオブジェクトまで辿ることができるので、deep copy的なことをしている
- dumpsの戻り値はbytes型なので、stdout/stdinをやり取りするにはbase64などでasciiに変換する必要がある
基本的な使用法
オブジェクトのシリアライズ
import pickle
ser = pickle.dumps([1, 2, 3])
オブジェクトのデシリアライズ
obj = pickle.loads(ser)
シリアライズデータをasciiに変換する
import pickle
import base64
def serialize(obj: Any) -> str:
return base64.b64encode(pickle.dumps(obj)).decode()
def deserialize(ser: bytes) -> Any:
return pickle.loads(base64.b64decode(bytes(data, "utf8")))