Python クラスをネイティブに JSON にシリアル化できません。次のクラスを考えてみましょう:
class FileItem: def __init__(self, fname): self.fname = fname
このクラスは JSON に直接シリアル化できません:
>>> import json >>> x = FileItem('/foo/bar') >>> json.dumps(x) TypeError: Object of type 'FileItem' is not JSON serializable
この問題を解決するには、1 つのアプローチは、シリアライザーメソッド:
toJSON()メソッド
import json class Object: def toJSON(self): return json.dumps( self, default=lambda o: o.__dict__, sort_keys=True, indent=4)
このメソッドを配置すると、クラスをシリアル化できます:
me = Object() me.name = "Onur" me.age = 35 me.dog = Object() me.dog.name = "Apollo" print(me.toJSON())
これにより、次の JSON が出力されます:
{ "age": 35, "dog": { "name": "Apollo" }, "name": "Onur" }
追加ライブラリ
より包括的なソリューションとして、 orjson ライブラリ
以上がカスタム Python クラスを JSON にシリアル化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。