開発者 / 種類

JSONからPythonへの変換ツール

JSONサンプルをPythonのdataclass、TypedDict定義、またはPydanticモデルに変換します。ネストしたクラス、オプショナルおよびnull許容フィールド、snake_case名に対応しています。

JSONからPythonへの変換ツール: この変換ツールはサンプルの構造を読み取ります。各オブジェクトはクラスになり、配列はlist[...]になります。配列内のオブジェクトは統合されるため、一部のレコードにないキーはオプショナルになり、nullになることがあるキーには"| None"が付きます。Pythonの有効な名前ではないキーはsnake_caseに変換されます。Pydanticモデルでは元のキーがエイリアスとして保持され、TypedDictでは関数形式に切り替わります。いくつかの難しいサンプルの出力をPython 3.13で実行し、Pydanticでサンプルとの適合性を検証しました。 サーバーへのファイルアップロードは一切なく、100%ブラウザ内でローカル実行します。

カテゴリ
開発者ツール
実行回数
ブラウザ内で
コスト
無料 · 登録不要
提供状況
すぐに使えます
JSONをPythonに変換ローカル処理

完全にブラウザ内で実行します

Python

from __future__ import annotations

from dataclasses import dataclass


@dataclass
class Address:
    city: str
    zip_code: str


@dataclass
class User:
    id: int
    user_name: str
    avatar_url: str
    score: float
    tags: list[str]
    address: Address
    manager_id: int | None
    nickname: str | None = None


UserList = list[User]

Python 3.10以降向けのコードです。一部のオブジェクトにないキーはoptionalになり、nullになることがあるキーは「| None」になります。データクラスは名前を変更したキーをJSONに戻すマッピングを行わないため、キーが有効なPython名でない場合は、エイリアスを追加するPydanticを使用してください。

型から検証まで

型ヒントだけでは実行時にデータをチェックできません。アノテーションの内容にかかわらず、json.loadsが返すのは通常のdictとlistです。Pydanticモデルなら、Model.model_validate(data)でデータを解析しながら検証と変換を行い、適合しないすべてのフィールドを報告できます。

同じサンプルを別の言語で使う場合は、JSONからTypeScriptへとJSONからGoへを参照してください。言語に依存しない契約には、JSONからJSON Schemaへが便利です。

適切なサンプルを用意する

1件だけでなく、オプションのフィールドや空のフィールドを含む複数のレコードを貼り付けてください。そうすると、変換ツールが常に存在するキーを確認できます。常にnullまたは空の配列になる値はAnyとして出力されるため、手動で埋める必要があります。

使い方

  1. JSONサンプルを貼り付けます。一般的なレコードを複数含む配列がおすすめです。
  2. dataclass、TypedDict、Pydanticのいずれかを選び、最上位の型に名前を付けます。
  3. 生成されたクラスをプロジェクトにコピーします。

プライバシーと制限事項

JSONはブラウザ内で変換され、アップロードされることはありません。

関連ツール

よくある質問

どの形式を使えばよいですか?

APIからのデータを検証・解析するならPydantic、通常のdictを受け渡すコードを型チェックするならTypedDict、自分で作成する単純な内部オブジェクトならdataclassがおすすめです。

コードにはどのPythonバージョンが必要ですか?

X | None構文を使うため、Python 3.10以降が必要です。TypedDictのNotRequiredには3.11が必要で、それより古いバージョンではtyping_extensionsを使用してください。

一部のフィールドがAnyになるのはなぜですか?

常にnullのキーや空の配列からは型を判断できません。APIのドキュメントにある実際の型にAnyを置き換えてください。

無料ツール · ブラウザ内で · アカウント不要