pythonベースpickleオブジェクトのシーケンス化
6559 ワード
pickle pythonオブジェクトのシーケンス化
シーケンス化とは
シーケンス化(Serialization)は、オブジェクトの状態情報を記憶または伝送可能な形式に変換するプロセスである.シーケンス化中に、オブジェクトは現在のステータスを一時的または永続的なストレージ領域に書き込みます.その後、オブジェクトの状態をストレージ領域から読み出したり逆シーケンス化したりすることで、オブジェクトを再作成できます.
モジュール
パッケージ解除可能なオブジェクト .整数、浮動小数点数、複素 str、byte、bytearray は、tuple、list、set、dict を含むパッケージ可能なオブジェクトのセットのみを含む.モジュールの最上位層に定義する関数( .は、モジュールの最上位層に組み込まれた関数 を定義する.モジュールの最上位レベルに定義されたクラス いくつかのクラスの例では、これらのクラスの .
一般的な関数:
dumps()関数オブジェクトをバイナリバイトストリームにシーケンス化
load()関数はバイナリバイトストリームをオブジェクトに逆シーケンス化する
シーケンス化とは
シーケンス化(Serialization)は、オブジェクトの状態情報を記憶または伝送可能な形式に変換するプロセスである.シーケンス化中に、オブジェクトは現在のステータスを一時的または永続的なストレージ領域に書き込みます.その後、オブジェクトの状態をストレージ領域から読み出したり逆シーケンス化したりすることで、オブジェクトを再作成できます.
モジュール
pickle
は、1つのPythonオブジェクト構造のバイナリシーケンス化および逆シーケンス化を実現する.Picklingは、Pythonオブジェクトとその所有する階層をバイトストリームに変換するプロセスであり、unpicklingは逆の操作であり、(binary fileまたはbytes-like objectからの)バイトストリームをオブジェクト階層に変換します.Pickling(およびunpickling)は「シーケンス化」、「グループ化」1または「平面化」とも呼ばれます.混乱を避けるために、ここでは「pickling」と「unpickling」という用語を用いる.
パッケージ解除可能なオブジェクト
None
、True
およびFalse
def
定義を使用し、lambda
関数は不可)__dict__
属性値または__getstate__()
関数の戻り値をパッケージ化することができる一般的な関数:
pickle.dump(object, file)
pickle.dumps(object) -> string
pickle.load(file) -> object
piclke.loads(string) -> object
import pickle
obj=['this is a stirng',34,{1:2},None]
Serialization_obj=pickle.dumps(obj)
print(Serialization_obj)// b'\x80\x03]q\x00(X\x10\x00\x00\x00this is a stirngq\x01K"}q\x02K\x01K\x02sNe.'
objj=pickle.loads(Serialization_obj)
print(objj)// ['this is a stirng', 34, {1: 2}, None]
dumps()関数オブジェクトをバイナリバイトストリームにシーケンス化
load()関数はバイナリバイトストリームをオブジェクトに逆シーケンス化する
import pickle
obj=['this is a stirng',34,{1:2},None]
pickle.dump(obj,open('obj.pkl','wb')) // obj obj.pkl
objj=pickle.load(open('obj.pkl','rb'))// obj.pkl
print(objj)//['this is a stirng', 34, {1: 2}, None]