JSON to Pydantic モデル生成
JSONサンプルからPydantic v2のモデルクラスをブラウザ内で即座に生成。JSONは端末上に留まります。
JSONはすべてブラウザ内で解析・Pydanticモデルに変換されるため、端末上に留まり、サーバーへ何もアップロードされません。
Go・Rust・TypeScriptの型が必要ですか?JSON to Codeをお試しください。
JSON to Pydantic について
このJSON to Pydanticジェネレーターは、サンプルのJSONオブジェクトや配列を、すぐに使えるPydantic v2のモデルクラスに数秒で変換します。実際のAPIレスポンスを貼り付けると、各フィールド型(str・int・float・bool)を推論し、null許容のフィールドを Optional とマークし、配列を list[...] 型に統一し、すべてのネストオブジェクトを名前で参照される独自の BaseModel に昇格させます。有効なPython識別子でないキーは Field(alias=...) で保持されるため、モデルは元のペイロードをそのまま解析できます。型付きクライアントを組む際に手書きするより、JSONからPydanticモデルを生成したいPythonやFastAPIの開発者のために作られています。すべてはブラウザ内でローカルに動作するため、貼り付けたJSONは端末上で処理され、サーバーへ何もアップロードされません。
機能
- あらゆるJSONオブジェクトや配列からPydantic v2のBaseModelクラスを生成
- サンプル値から str・int・float・bool を推論
- null許容や一部の項目にないフィールドを Optional[...] とマーク
- ネストしたオブジェクトを名前付きの独立した BaseModel クラスに昇格
- 配列を list[...] 型に統一し、空の配列は list[Any] に
- 無効なPythonキーを Field(alias=...) で保持し解析を維持
- BaseModel・Field・Optional・Any のクリーンなインポートを出力
- 結果をコピーするか .py ファイルとしてダウンロード
JSON to Pydantic の使い方
- JSONオブジェクトまたは配列を入力ボックスに貼り付けます。
- ルートモデル名をスキーマに合わせて設定するか、Modelのままにします。
- 出力パネルで生成されたPydanticクラスを確認します。
- 結果をコピーするか .py ファイルとしてダウンロードします。
例
入力
{ "id": 1, "name": "Ada", "address": { "city": "London" } }
出力
from pydantic import BaseModel
class Address(BaseModel):
city: str
class Model(BaseModel):
id: int
name: str
address: Address
ネストしたオブジェクトが独自の BaseModel になり、ルートクラスは最後に置かれます。
よくあるエラーとトラブルシューティング
- 出力に行と列を伴うInvalidエラーが表示される。 — JSONに末尾のカンマ・シングルクォート・引用符のないキーなどの構文上の問題があります。報告された行と列で修正すれば、モデルが再生成されます。
- フィールドが具体的な型ではなく Optional[Any] になった。 — そのキーのサンプル値がすべて null だったため、具体的な型を推論できませんでした。そのフィールドに実際の値を持つサンプルを与えてください。
- フィールドが属性名を変更した Field(alias=...) を使っている。 — そのキーは有効なPython識別子でないか予約語のため、安全な属性名で公開され、元のキーはエイリアスとして保持されます。
- リストのフィールドが list[Any] になった。 — サンプル中のその配列が空だったため、要素型を推論できませんでした。型付きのリストを得るには、代表的な要素を少なくとも1つ含めてください。
よくある質問
- Pydantic v2のモデルを生成しますか。
- はい。出力はPydantic v2の構文を対象とします。各モデルは BaseModel を継承するクラスで、アノテーション付きのフィールドを持ち、JSONキーが有効なPython識別子でない場合は Field(alias=...) を使います。
- ネストしたオブジェクトはどう扱われますか。
- 各ネストオブジェクトは、所有するキーからパスカルケースで名付けられた独自の BaseModel クラスになり、親はそれを型で参照します。クラスは依存順に出力され、ルートモデルが最後になります。
- JSON型はどのようにPython型に対応づけられますか。
- 文字列は str、整数は int、小数は float、真偽値は bool になり、null は Optional を生成し、配列は要素型を統一した list[...] に、オブジェクトはネストした BaseModel になります。
- 有効なPython名でないキーはどうなりますか。
- first-name や 2fa のようなキー、あるいは class のような予約語は、安全なスネークケースの属性で公開され、元のキーは Field(alias="...") で保持されるため、モデルはペイロードをそのまま解析できます。
- 配列や空の配列はどう変換されますか。
- 配列は要素を統一した型で list[...] になり、オブジェクトの配列にはネストした BaseModel を使います。空の配列は推論できる要素型がないため list[Any] になります。
- Pydanticモデルを生成するとき、JSONはどこかに送信されますか。
- いいえ。JSON to Pydanticの変換は完全にブラウザ内で動作するため、貼り付けたデータはローカルで処理され、端末から外に出ることはありません。
関連ツール
すべての ArrayKit ツール