DT Dev Tools

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Ă©

Publicité

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

  1. Collez le JSONCollez un objet ou un tableau JSON, ou cliquez sur Load sample.
  2. Choisissez un styleSélectionnez votre version de Python et le choix entre dataclasses ou modÚles Pydantic.
  3. 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 ?
Les deux. La sortie par défaut utilise @dataclass avec annotations de type ; cochez Pydantic BaseModel pour obtenir des modÚles Pydantic à la place.
Quelles versions de Python sont prises en charge ?
Choisissez 3.6, 3.7, 3.9 ou 3.10+. Les cibles récentes utilisent les génériques intégrés comme list[str] et la syntaxe d'union X | None.
Les noms de propriétés sont-ils convertis en snake_case ?
Oui. Les noms de champs deviennent du snake_case pythonique, tandis que les fonctions générées from_dict et to_dict conservent les clés JSON d'origine.
Mes données sont-elles envoyées quelque part ?
Non. Tout s'exécute en local dans votre navigateur : les réponses d'API privées restent sur votre appareil.
Publicité