python pickle

python pickleの使い方

タグ 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")))

参考