JSON Pythonクラス変換
JSONを貼り付けると、型付きのPython dataclassまたはPydantic v2モデルを生成します。入れ子のクラス、省略可能フィールド、snake_case名、from_dictヘルパーに対応。
Python 3.10以降が必要です(list[...] と X | None を使用)。クラスは、使われる前に定義されるよう順番に並べています。
型の推論にはJavaScriptの数値を使うため、整数のサンプルは±9,007,199,254,740,991の範囲内にしてください。それより大きな識別子や正確な小数値は文字列にしてください。
使い方: obj = User.from_dict(json.loads(text))
JSONのサンプルから、型付きのPythonクラスを生成します。入れ子のオブジェクト、リスト、null許容フィールド、元のキーを指すエイリアスに対応しています。標準ライブラリのdataclass(オプションのfrom_dict()ヘルパー付き)と、実行時の検証ができるPydantic v2モデルのどちらかを選べます。
使い方
- JSONのオブジェクト、またはオブジェクトのリストを貼り付けます。サンプルが複数あると、省略可能なフィールドを見つけられます。
- ルートクラスの名前を入力します。
- dataclassかPydanticかを選び、キーをsnake_caseにするかどうかを選びます。
- コードをプロジェクトにコピーします(Python 3.10以降)。
計算式
string → str · 整数 → int · 小数 → float(intとfloatが混在するとfloat)· true/false → bool · オブジェクト → 新しいクラス · 配列 → list[項目の型] · null → | None · 型が混在 → Any
存在しないキーは、既定値Noneの省略可能フィールドになります。dataclassでは既定値を持つフィールドを後ろに置きます。入れ子のクラス名はキーから作られ、リスト名は単数形にされます。導出された名前とフィールドが一致する場合にのみ、クラス定義を共有します。整数のサンプルは±9,007,199,254,740,991の範囲内にしてください。JavaScriptの数値による推論は、有限でない値や失われる小数部分を拒否するため、大きな識別子や正確な小数は文字列にしてください。
計算例
既定のサンプルからは3つのクラスと16個のフィールドが生成されます。Address、Order、Userです。"total": 59.9 と "total": 12 は total: float に統合され、couponCode は1件の注文にしかないため coupon_code: str | None = None になり、"lastLogin": null はnullだけでは型がわからないため last_login: Any = None になります。from_dict()では、orders が [Order.from_dict(x) for x in d["orders"]] で構築されます。Pydanticに切り替えると、名前が変更されたキーごとに、代わりに Field(alias="userName") が付きます。
よくある質問
dataclassとPydanticのどちらを使うべきですか?
dataclassは組み込みで高速ですが、検証や型変換は行いません。Pydanticは型を検査し、"12" のような互換性のある値を12に変換し、model_validate_json()でJSON文字列から入れ子のオブジェクトまで直接解析します。APIの境界にはPydantic、内部データにはdataclassが向いています。
サンプルでは12なのに、floatになるのはなぜですか?
そのキーの値のどれか1つでも小数部分があれば、フィールドはfloatになります。JSONの12.0は整数の12として読み込まれるため、フィールドが小数になり得る場合は、12.5のような実際の小数を含むサンプルを入れてください。
"first-name" や "class" のようなキーはどうなりますか?
有効な名前に変換されます。first-name は first_name、class は class_ になります。from_dict()は引き続き元のキーを読み取り、Pydanticでは元のキーがエイリアスになります。
最上位にリストを貼り付けられますか?
はい。[ {…}, {…} ] の項目は1つのルートクラスに統合され、結果の下の注記にリスト全体を解析する方法が表示されます。
出典
最終更新:
この入力内容のページアドレス: https://kakao.mobile/ja/tools/json-to-python-class-tool/
このツールを引用する
kakaoCalc. (2026, November 8). JSON Pythonクラス変換. https://kakao.mobile/ja/tools/json-to-python-class-tool/
“JSON Pythonクラス変換.” kakaoCalc, 8 Nov. 2026, kakao.mobile/ja/tools/json-to-python-class-tool/.