Python のシリアル化および逆シリアル化技術のベスト プラクティスは何ですか?
シリアル化と逆シリアル化は、データ ストレージ、データ送信、その他のシナリオで一般的に使用されるテクノロジです。 Python では、シリアル化と逆シリアル化を使用して、オブジェクトを保存または送信できる形式に変換し、それからオブジェクトに戻すことができます。この記事では、pickle ライブラリと json ライブラリの使用を含む、Python でのシリアル化と逆シリアル化のベスト プラクティスと、カスタム オブジェクトのシリアル化と逆シリアル化の処理方法を紹介します。
Pickle は、オブジェクトをシリアル化および逆シリアル化するための Python の標準ライブラリの 1 つです。オブジェクトをバイト ストリームに変換したり、バイト ストリームをオブジェクトに戻したりするためのシンプルな API を提供します。
これは、シリアル化と逆シリアル化に pickle ライブラリを使用する方法を示す例です:
import pickle # 对象序列化为字节流 data = {'name': 'Alice', 'age': 25} serialized_data = pickle.dumps(data) # 字节流反序列化为对象 deserialized_data = pickle.loads(serialized_data) print(deserialized_data) # 输出: {'name': 'Alice', 'age': 25}
Json は一般的に使用されるデータ交換形式であり、広くサポートされ、使用されています。 Python では、json ライブラリを使用すると、オブジェクトを json 文字列にシリアル化したり、json 文字列をオブジェクトに逆シリアル化したりすることが簡単になります。
これは、シリアル化と逆シリアル化に json ライブラリを使用する方法を示す例です:
import json # 对象序列化为json字符串 data = {'name': 'Alice', 'age': 25} serialized_data = json.dumps(data) # json字符串反序列化为对象 deserialized_data = json.loads(serialized_data) print(deserialized_data) # 输出: {'name': 'Alice', 'age': 25}
Whenカスタム オブジェクトをシリアル化および逆シリアル化する必要がある場合は、カスタム オブジェクトのシリアル化メソッドと逆シリアル化メソッドを実装する必要があります。 Python では、__getstate__
メソッドと __setstate__
メソッドを実装することで、カスタム オブジェクトのシリアル化と逆シリアル化の動作を定義できます。
カスタム オブジェクトのシリアル化と逆シリアル化を処理する方法を示す例は次のとおりです:
class Person: def __init__(self, name, age): self.name = name self.age = age def __getstate__(self): return {'name': self.name, 'age': self.age} def __setstate__(self, state): self.name = state['name'] self.age = state['age'] # 对象序列化为字节流 person = Person('Alice', 25) serialized_data = pickle.dumps(person) # 字节流反序列化为对象 deserialized_person = pickle.loads(serialized_data) print(deserialized_person.name) # 输出: Alice print(deserialized_person.age) # 输出: 25
概要:
Python では、シリアル化と逆シリアル化は一般的に使用されるテクノロジです。通常、データの保存やデータ送信などのシナリオで使用されます。シリアル化および逆シリアル化操作は、pickle および json ライブラリを通じて簡単に実行できます。カスタム オブジェクトを処理する必要がある場合は、__getstate__
メソッドと __setstate__
メソッドを実装することで、カスタム オブジェクトのシリアル化と逆シリアル化の動作を定義できます。上記は、Python でのシリアル化および逆シリアル化テクニックのベスト プラクティスです。この記事がお役に立てば幸いです。
以上がPython のシリアル化および逆シリアル化技術のベスト プラクティスは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。