Sviluppatore / Tipi

Convertitore da JSON a Python

Trasforma un esempio JSON in dataclass Python, definizioni TypedDict o modelli Pydantic, con classi annidate, campi facoltativi e nullable e nomi in snake_case.

Convertitore da JSON a Python: Il convertitore legge la struttura dell'esempio: ogni oggetto diventa una classe, gli array diventano list[...] e gli oggetti contenuti in un array vengono uniti, così una chiave assente in alcuni record diventa facoltativa e una chiave che a volte è null diventa "| None". Le chiavi che non sono nomi Python validi diventano snake_case; i modelli Pydantic mantengono la chiave originale come alias, mentre TypedDict passa alla sua forma funzionale. L'output di diversi esempi complessi è stato eseguito in Python 3.13 e Pydantic ha verificato l'esempio rispetto al modello generato. Funziona al 100% localmente nel browser, senza caricare file sul server.

Esecuzioni
Nel browser
Costo
Gratuito · senza registrazione
Disponibilità
Pronto all'uso
Da JSON a PythonElaborazione locale

Funziona interamente nel browser

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]

Scritto per Python 3.10 o versioni successive. Le chiavi mancanti in alcuni oggetti diventano facoltative; quelle che a volte sono null diventano “| None”. Le Dataclass non riconvertono in JSON le chiavi rinominate, quindi usa Pydantic, che aggiunge gli alias, quando le chiavi non sono nomi Python validi.

Dai tipi alla validazione

Le annotazioni dei tipi, da sole, non controllano i dati durante l'esecuzione: json.loads restituisce semplici dict e liste, indipendentemente da ciò che indicano le annotazioni. I modelli Pydantic validano e convertono i dati durante l'analisi, con Model.model_validate(data), e segnalano ogni campo non conforme.

Per lo stesso esempio in altri linguaggi, consulta JSON to TypeScript e JSON to Go; per un contratto indipendente dal linguaggio, JSON to JSON Schema.

Ottenere un buon esempio

Incolla diversi record invece di uno solo, includendo quelli con campi facoltativi o vuoti, così il convertitore può capire quali chiavi sono sempre presenti. I valori che sono sempre null o array vuoti vengono restituiti come Any e devono essere completati manualmente.

Come usarlo

  1. Incolla un esempio JSON, preferibilmente un array con diversi record tipici.
  2. Scegli dataclass, TypedDict o Pydantic e assegna un nome al tipo principale.
  3. Copia le classi generate nel tuo progetto.

Privacy e limitazioni

Il JSON viene convertito nel browser e non viene mai caricato.

Strumenti correlati

Domande frequenti

Quale stile dovrei usare?

Pydantic per convalidare e analizzare i dati provenienti da un'API, TypedDict per il controllo dei tipi nel codice che passa normali dict e dataclass per semplici oggetti interni creati direttamente da te.

Quale versione di Python serve per eseguire il codice?

Python 3.10 o successiva, per la sintassi X | None; NotRequired in TypedDict richiede la versione 3.11, oppure typing_extensions nelle versioni precedenti.

Perché alcuni campi hanno il tipo Any?

Una chiave sempre null o un array vuoto non fornisce indicazioni sul tipo; sostituisci Any con il tipo corretto indicato nella documentazione della tua API.

Strumento gratuito · nel browser esecuzioni · senza account