ホームページ > バックエンド開発 > Python チュートリアル > Python クラスを JSON シリアル化可能にするにはどうすればよいですか?

Python クラスを JSON シリアル化可能にするにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-21 14:38:15
オリジナル
111 人が閲覧しました

How Can I Make My Python Classes JSON Serializable?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート