Omnikit
DevFichiersFinancesTous les outils
Ctrl K
Outils pour développeursOutils pour fichiersCalculateurs financiersTous les outils
AccueilOutils pour développeursConvertisseur JSON en classes Python
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский

Convertisseur JSON en classes Python

dev

Transformez un échantillon JSON en dataclasses, modèles Pydantic ou TypedDict Python avec annotations de type

Fonctionne dans votre navigateur. Rien de ce que vous saisissez n'est envoyé nulle part. Vérifié le 16 octobre 2026.

Collez un échantillon JSON et obtenez des dataclasses, des modèles Pydantic v2 ou des TypedDict Python avec annotations de type. Les nombres entiers deviennent int et la moindre décimale rend un champ float ; une valeur null ou absente devient str | None avec None par défaut, et les 3 styles de classe partagent la même inférence.

Cette page a été traduite automatiquement à partir de l'original anglais. Aucune personne n’a encore relu la traduction : c’est la version anglaise qui fait foi. Lire l'original en anglais

Ensuite :
  • JSON to Zod Paste a JSON sample and get a Zod schema with its z.infer type, ready to copy
  • Formateur et validateur JSON Formatez, validez, minifiez et triez du JSON avec la position exacte des erreurs

Comment convertir du JSON en classe Python

1

Collez un échantillon JSON, par exemple une réponse d'API, dans la zone de gauche.

2

Les classes Python apparaissent pendant la saisie : une classe par objet, avec des annotations comme int, float, list[str] et str | None.

3

Choisissez dataclass, Pydantic ou TypedDict, et le typage Python 3.9 si votre projet est antérieur à 3.10.

4

Cliquez sur Copier, ou sur Télécharger pour enregistrer models.py.

À propos du Convertisseur JSON en classes Python

Python lit le JSON sous forme de dictionnaires, et c'est une classe annotée qui permet à un éditeur, à un vérificateur de types ou à Pydantic de repérer une clé mal orthographiée ou un mauvais type. Ce convertisseur écrit ces classes à partir d'un échantillon : une longue réponse d'API devient du Python typé en un seul collage.

Comment les types sont choisis.

Valeur JSON Type Python
"text" str
true / false bool
42 (nombres entiers uniquement) int
4.5 (au moins une décimale vue) float
null, plus un type str | None, ou Optional[str]
null seul, ou types mélangés Any
[ ... ] list[...]
{ } vide dict[str, Any]
{ ... } une classe à part

Tableaux d'objets. Tous les objets d'un tableau sont fusionnés en une seule classe : une clé présente dans certains seulement reste là, avec un type qui admet None et None comme valeur par défaut. Deux objets ayant exactement les mêmes clés et types partagent une classe.

Trois styles. Une dataclass ne demande aucune installation ; les champs avec valeur par défaut sont placés après les autres, sinon Python lève une TypeError. Les modèles Pydantic utilisent des attributs en snake_case avec Field(alias=...) pour les clés écrites autrement, comme userName ou first-name. Un TypedDict garde les clés telles quelles et marque NotRequired celles qui n'apparaissent que parfois.

Ordre et noms. Les classes sont écrites en commençant par les enfants, si bien que chaque nom est défini avant d'être utilisé. Un mot-clé comme class devient class_, et une clé qui masquerait un type, comme list, reçoit le même tiret bas.

Chaque style a été vérifié en exécutant le résultat sous CPython avec Pydantic 2 et en validant l'échantillon. Rien de ce que vous collez ne quitte le navigateur.

Questions fréquentes

Comment convertir du JSON en classe Python ?

Collez un échantillon JSON dans le convertisseur et les classes Python apparaissent à côté, une par objet, avec une annotation de type sur chaque attribut. Choisissez dataclass pour des classes simples, Pydantic pour la validation ou TypedDict pour continuer à travailler avec des dictionnaires ordinaires, puis copiez le module dans votre projet.

Faut-il utiliser une dataclass, un modèle Pydantic ou un TypedDict ?

Une dataclass convient aux données que vous construisez vous-même et ne demande aucune bibliothèque. Pydantic convient aux données venues de l'extérieur, comme les réponses d'API, car il vérifie chaque valeur et convertit les objets imbriqués pour vous. Un TypedDict ajoute seulement des annotations au dictionnaire renvoyé par json.loads et ne coûte rien à l'exécution.

Comment sont traitées les clés JSON comme userName ou first-name ?

Les attributs Pydantic sont écrits en snake_case, comme le demande la PEP 8, avec Field(alias="userName") pour que la validation lise toujours la clé d'origine. Un TypedDict garde chaque clé telle quelle et passe à la syntaxe fonctionnelle quand une clé n'est pas un nom valide. Une dataclass garde les clés qui sont des noms valides et signale les autres.

Pourquoi un champ est-il typé str | None ou Optional[str] ?

Une clé qui valait null dans l'échantillon, ou qui manque dans certains objets d'un tableau, peut contenir None, donc son annotation l'autorise. Les clés absentes reçoivent aussi None par défaut, et dans une dataclass ces champs passent à la fin, car Python refuse un champ sans valeur par défaut après un champ qui en a une.

Quelle version de Python le résultat demande-t-il ?

Le typage par défaut, comme list[str] et str | None, demande Python 3.10 ou plus récent. Activez le typage Python 3.9 pour obtenir à la place Optional et List du module typing. NotRequired pour TypedDict vient de typing_extensions, et se trouve dans typing lui-même depuis Python 3.11.

Mon JSON est-il envoyé ?

Non. La conversion s'exécute dans votre navigateur sans aucune requête vers un serveur, et le JSON n'est pas conservé : les réponses d'API contenant des jetons ou des données personnelles restent sur votre appareil. Fermez l'onglet et il ne reste rien.

Sources

  • Python documentation, dataclassesField order rule: no field without a default after one with a default
  • Python documentation, typing.TypedDict and NotRequiredClass and functional syntax, keys that may be missing
  • PEP 8, naming conventionsCapWords class names, snake_case attributes, a trailing underscore after a keyword
  • Pydantic documentation, fields and aliasesField(alias=...) to read a JSON key into another attribute name

Dernière vérification le 16 octobre 2026.

Les taux et les règles changent ; vérifiez la source avant de vous fier à un chiffre.

Toujours bloqué ? Poser une question sur Convertisseur JSON en classes Python et toute personne qui connaît la réponse peut répondre. Aucun compte nécessaire.

Outils associés

Tous les outils pour développeurs
Encoder et décoder en Base64Texte et fichiers vers Base64 et retour, avec mode sûr pour les URL et aperçu des imagesConvertisseur de timestamp UnixDes timestamps Unix vers des dates et des dates vers des timestamps, dans tout fuseau horaireJSON vers TypeScriptGénérez des interfaces ou des types TypeScript à partir d'un exemple JSONConvertisseur CSV en JSONConvertissez CSV en JSON et JSON en CSV, avec un aperçu en tableauConvertisseur YAML en JSONConvertissez YAML en JSON et JSON en YAML, avec les ancres résoluesEncodeur et décodeur d'URLEncodez ou décodez textes et URL en encodage pourcent, et voyez chaque partie d'un lienConvertisseur de bases numériquesBinaire, octal, décimal, hexadécimal et toute base jusqu'à 36, exact quelle que soit la taille, avec complément à deuxColor ConverterHEX, RGB, HSL, HWB, OKLCH and CMYK in both directions, with a contrast check
Cet outil vous a-t-il été utile ?
Omnikit

Les petites tâches, faites dans votre navigateur. Gratuit, rapide et privé. Les fichiers ne sont jamais envoyés.

Fichiers

  • Compress Image
  • Image to PDF
  • Merge PDF
  • Compress PDF
  • PDF to Word
  • Word to PDF

Dev

  • JSON Formatter & Validator
  • Base64 Encode & Decode
  • JWT Decoder, Verifier & Encoder
  • Password Generator
  • UUID Generator
  • Unix Timestamp Converter

Finances

  • SIP Calculator
  • EMI Calculator
  • GST Calculator
  • FD Calculator
  • PPF Calculator
  • Lumpsum Calculator
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский
GuidesQuestionsÀ proposNos vérificationsBibliothèque juridique (bêta)ConfidentialitéConditionsTransparenceContactMore: Exam practice (UGC NET Paper 1)Fonctionne dans votre navigateur. Rien n'est envoyé. © 2026 Omnikit (theomnikit.com)