Convertir JSON en Python â GĂ©nĂ©rateur de classes
Convertissez du JSON en dataclasses Python ou modÚles Pydantic avec annotations de type, champs snake_case et fonctions from_dict/to_dict. Gratuit et privé.
đ S'exĂ©cute entiĂšrement dans votre navigateur â rien n'est envoyĂ©Du JSON aux classes Python typĂ©es
Travailler avec des dictionnaires bruts est rapide, jusqu'à ce qu'une faute de frappe dans un nom de clé provoque une KeyError trois couches plus bas. Ce convertisseur JSON vers Python génÚre des classes typées à partir d'un exemple de JSON, afin que votre éditeur, votre vérificateur de types et vos collÚgues sachent exactement ce que contient chaque charge utile. Chaque objet devient une classe aux attributs annotés, les objets imbriqués deviennent leurs propres classes, les listes sont typées selon le type de leurs éléments, et les valeurs parfois absentes sont typées comme optionnelles. Les clés JSON sont converties en noms d'attributs snake_case, tandis que le code de sérialisation généré conserve les clés d'origine sur le réseau.
La gĂ©nĂ©ration est assurĂ©e par quicktype, qui fusionne tous les Ă©lĂ©ments de chaque tableau avant d'infĂ©rer les types : un champ prĂ©sent seulement dans certains Ă©lĂ©ments est donc bien capturĂ© et marquĂ© optionnel, au lieu d'ĂȘtre silencieusement ignorĂ©.
Dataclasses, Pydantic et versions de Python
Par dĂ©faut, la sortie utilise des classes @dataclass de la bibliothĂšque standard, ainsi que des fonctions from_dict et to_dict qui valident et convertissent chaque champ : aucune dĂ©pendance tierce n'est nĂ©cessaire. Si votre projet utilise dĂ©jĂ Pydantic â pour des corps de requĂȘte FastAPI, de la configuration ou de la validation â, cochez Pydantic BaseModel et les classes hĂ©ritent alors de BaseModel. Le sĂ©lecteur de version de Python contrĂŽle la syntaxe de typage : 3.10+ produit des annotations modernes comme list[int] et str | None, tandis que les cibles plus anciennes se rabattent sur le module typing. Cochez Classes only pour supprimer entiĂšrement les fonctions de conversion.
Conseils pratiques
Utilisez un exemple qui met Ă l'Ă©preuve les champs optionnels et contient plusieurs Ă©lĂ©ments de tableau, car l'infĂ©rence ne peut dĂ©crire que ce qu'elle voit. Nommez la classe racine d'aprĂšs votre domaine â Invoice se lit mieux que Root â et le tĂ©lĂ©chargement reprendra ce nom. AprĂšs la gĂ©nĂ©ration, lancez votre formateur et votre vĂ©rificateur de types (Black, Ruff, mypy ou Pyright) et affinez ce que l'exemple ne pouvait pas rĂ©vĂ©ler, comme des chaĂźnes qui sont en rĂ©alitĂ© des Ă©numĂ©rations ou des nombres qui devraient ĂȘtre des Decimal. L'analyse et la gĂ©nĂ©ration de code se font en local : vous pouvez donc coller sans risque des rĂ©ponses contenant des donnĂ©es clients.
Comment utiliser
- Collez le JSONCollez un objet ou un tableau JSON, ou cliquez sur Load sample.
- Choisissez un styleSélectionnez votre version de Python et le choix entre dataclasses ou modÚles Pydantic.
- Copiez les classesCopiez le code généré ou téléchargez-le sous forme de module .py.
Questions fréquemment posées
GénÚre-t-il des dataclasses ou des modÚles Pydantic ?
@dataclass avec annotations de type ; cochez Pydantic BaseModel pour obtenir des modĂšles Pydantic Ă la place.Quelles versions de Python sont prises en charge ?
list[str] et la syntaxe d'union X | None.Les noms de propriétés sont-ils convertis en snake_case ?
from_dict et to_dict conservent les clés JSON d'origine.