Python クラスの JSON をシリアル化可能にする
シリアル化により、オブジェクトを永続化または転送に適した形式に変換できます。カスタム クラスを JSON でシリアル化すると、JSON でシリアル化できない性質があるため、多くの場合 TypeError が発生します。
toJSON() メソッドを実装する
1 つのアプローチは、クラスの toJSON() メソッド。シリアル化を手動で処理します。これには、カスタム JSON シリアル化関数を実装し、ネストされたオブジェクトを適切に処理する必要があります。
import json class FileItem: def __init__(self, fname): self.fname = fname def toJSON(self): return json.dumps(self.__dict__) x = FileItem('/foo/bar') print(x.toJSON()) # Outputs: '{"fname": "/foo/bar"}'
orjson ライブラリの使用
包括的なソリューションについては、orjson の使用を検討してください。このライブラリは、カスタム クラスを JSON にシリアル化するための効率的でカスタマイズ可能な方法を提供します。スキーマの適用や複雑なオブジェクト構造のサポートなどの高度な機能を提供します。
import orjson @orjson.dataclass class FileItem: fname: str x = FileItem('/foo/bar') json_bytes = orjson.dumps(x) # Returns a byte string print(json_bytes.decode()) # Outputs: '{"fname": "/foo/bar"}'
結論
カスタム toJSON() メソッドまたは orjson ライブラリを使用すると、便利なソリューションが提供されます。 Python クラスを JSON にシリアル化します。どちらのアプローチでも、オブジェクトを効果的に表現し、JSON 形式で送信できることが保証されます。
以上がPython クラスを JSON シリアル化可能にするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。