JSON naar Python
Nog geen content
Gratis online tool JSON naar Python die JSON-gegevens automatisch omzet naar Python @dataclass klassen met type-annotaties. Strings worden str, integers int, floats float, booleans bool, arrays List[T], geneste objecten genereren onafhankelijke dataclasses, null wordt Optional[Any]. Lokale browseruitvoering, kopieer in één klik of download model.py.
Gerelateerde aanbevelingen
Over JSON naar Python: JSON-gegevens omzetten naar uitvoerbare dataclass modellen
JSON naar Python is het proces van het converteren van JSON-gegevens naar Python @dataclass typedefinities.
@dataclass is een standaardbibliotheekfunctie geïntroduceerd in Python 3.7 (PEP 557).
Typeherkenning is het hart van JSON naar Python.
In tegenstelling tot sommige online tools, vinden alle berekeningen van deze tool plaats in de browser.
Gegenereerde code kan direct in Python-projecten worden gebruikt.
Automatisch gegenereerde code is een startpunt, geen eindpunt.
dataclass vs Pydantic BaseModel vs attrs vs TypedDict.
JSON naar Python heeft unieke waarde in het Data Science ecosysteem.
Andere optionele tools in het Python-ecosysteem: marshmallow, cattrs, pydantic, apischema.
In CLI en automatiseringsscenario's.
Prestaties en onderhoudbaarheid met frozen=True en slots=True.
Toepassingsgevallen
- REST API integratie
- FastAPI request/response modellen
- Django Ninja / DRF serializers
- Scraper data modellering
- ML feature definitie
- Configuratiebestand deserialisatie
- Jupyter Notebook tijdelijke structuur
- Microservice interface definitie
- CLI tool ontwikkeling
- Testgegevens constructie
- Gestructureerde log analyse
- Configuratiecentrum migratie
- Cross-language samenwerking
- Databasemigratie
- Blockchain/Web3
- Data Science ETL
- OpenAPI schema validatie
- Didactische voorbeelden
- Veldnaam conversie
Hoe te gebruiken
- Plak JSON in de linker editor of upload een bestand
- Wacht 400ms op automatische conversie
- Als JSON onjuist is klik «JSON repareren»
- Klik «Kopiëren» of «Downloaden» om model.py op te slaan
Functies
- Lokale browserconversie
- Uitvoer met dataclass annotaties
- Automatische typeherkenning
- Automatische splitsing van geneste objecten
- Automatische List generic resolutie
- Optionele Optional velden
- Automatische conversie met 400ms debounce
- JSON foutcorrectie in één klik
- Kopiëren en downloaden
- localStorage invoergeschiedenis
- Responsieve aanpasbare panelen
- Ondersteunt Pydantic/attrs/TypedDict nabewerking
Codevoorbeelden
Python: API response parsen met requests naar gegenereerde dataclass
python# requirements.txt
# requests>=2.31
from dataclasses import dataclass
from typing import Any, List, Optional
import json
import requests
@dataclass
class Address:
city: str
zip: str
@dataclass
class User:
id: int
name: str
active: bool
address: Address
tags: List[str]
label: Optional[Any] = None
def main() -> None:
resp = requests.get("https://api.example.com/users/1", timeout=10)
resp.raise_for_status()
user: User = User(**resp.json())
print(f"{user.name} lives in {user.address.city}")
if __name__ == "__main__":
main()Python: FastAPI gebruikt gegenereerd model voor body validatie (Pydantic versie)
python# pip install fastapi 'pydantic>=2'
from typing import List, Optional
from fastapi import FastAPI
from pydantic import BaseModel
class Address(BaseModel):
city: str
zip: str
class User(BaseModel):
id: int
name: str
email: str
active: bool = True
address: Address
tags: List[str] = []
label: Optional[str] = None
app = FastAPI()
@app.post("/users")
async def create_user(user: User) -> dict:
return {"id": user.id, "name": user.name}Best Practices
JSON-voorbeeld moet voorbeeldwaarden voor alle velden bevatten
Geef voorbeeldwaarden voor sleutelvelden om nauwkeurige typen te verkrijgen.
Complexe JSON bij voorkeur opgesplitst in meerdere dataclasses
Splits in meerdere bestanden als het aantal velden 50 overschrijdt.
Schakel over naar Pydantic BaseModel als runtime-validatie vereist is
Gebruik Pydantic voor FastAPI-projecten of als validatie nodig is.
Combineer mypy voor typecontroles in CI-fase
Voeg mypy src/ --strict toe aan de CI-pipeline.
Vermijd muteerbare standaardwaarden in dataclass-velden
Gebruik field(default_factory=list) in plaats van = [].
Gedownloade model.py moet in een onafhankelijk models-pakket worden geplaatst
Aanbevolen structuur: src/models/__init__.py + submodules.
Gevoelige JSON moeten lokaal worden verwerkt
Gebruik deze tool (lokale uitvoering) voor gevoelige JSON.
Python 3.10+ activeer slots om geheugen te besparen
Gebruik @dataclass(slots=True) in Python 3.10+ voor betere prestaties.
Veelgestelde vragen
Hoe converteer ik JSON naar een Python dataclass?
Plak JSON in de linker editor of upload een bestand.
Bevat de gegenereerde Python code dataclass annotaties?
Ja, genereert de @dataclass decorator en benodigde imports.
Welke JSON-datastructuren worden ondersteund?
Ondersteunt alle geldige JSON-structuren: primitieve typen, arrays, geneste objecten.
Hoe worden JSON-veldtypen toegewezen aan Python-typen?
Strings→str, integers→int, floats→float, booleans→bool, arrays→List[T], geneste objecten→@dataclass, null→Optional[Any].
Welk type wordt gegenereerd voor null-waarden?
Null-waarden genereren Optional[Any].
Worden arrays geconverteerd naar List?
Ja, JSON arrays worden geconverteerd naar List[T].
Hoe worden geneste objecten behandeld?
Elk genest object genereert een onafhankelijke @dataclass klasse.
Kan ik de naam van de gegenereerde klasse aanpassen?
Ja, je kunt handmatig klassenamen wijzigen na generatie.
Kan de gegenereerde code direct in een project worden gebruikt?
Ja, zorg voor een Python 3.7+ omgeving.
Kan ik converteren naar Pydantic BaseModel in plaats van dataclass?
Ja, vervang @dataclass door class Xxx(BaseModel): en importeer uit pydantic.
Worden gegevens naar de server verzonden? Is privacy veilig?
Volledig lokale browseruitvoering, geen gegevens worden naar servers verzonden.
Is registratie of inlog vereist?
Nee. De tool is volledig gratis, geen registratie vereist.
Wat te doen bij JSON-formaatfouten?
Klik op de knop «JSON repareren» om veelvoorkomende fouten automatisch te corrigeren.
Is het converteren van grote JSON traag?
Voor JSON groter dan 10MB raden we de CLI-tool quicktype aan.
Probleemoplossing
Bericht «Voer JSON-gegevens in» of rechterkant leeg
De invoer is leeg. Zorg ervoor dat je geldige JSON hebt geplakt.
Bericht JSON parsing mislukt
Veelvoorkomende oorzaken: afsluitende komma, enkele aanhalingstekens, sleutels zonder aanhalingstekens, JavaScript-commentaren.
Gegenereerde veldtypen niet nauwkeurig genoeg
Wijzig typen handmatig na generatie.
Null-veld genereerde Optional[Any] in plaats van Optional[str]
Concreet type kan niet worden afgeleid uit null.
Importfout gedownload .py-bestand in project
Mogelijke oorzaken: Python-versie lager dan 3.7, naamconflicten.
snake_case JSON-velden komen niet overeen met Python naamstijl
Gebruik alias_generator van Pydantic of hernoem handmatig.
Pagina bevriest bij zeer grote JSON
We raden aan de JSON op te splitsen of de CLI-tool te gebruiken.
FastAPI body validatiefout (422)
Wijzig veldtype naar Optional[Typo] = None.
Woordenlijst
- dataclass
- Decorator van de standaardbibliotheek Python 3.7+ (@dataclass) voor het automatisch genereren van magische methodes.
- Module typing
- Standaardbibliotheek Python voor type-annotaties.
- Optional[T]
- Optioneel type van de module typing.
- List[T]
- Generiek lijsttype van Python.
- Any
- Speciaal type dat elk type accepteert.
- Pydantic BaseModel
- Basisklasse voor datamodellen van de Pydantic-bibliotheek.
- FastAPI
- Modern Python webframework gebaseerd op Pydantic.
- PEP 557
- Voorstel dat de syntaxis van de dataclass-decorator definieert.
- Type-annotatie (Type Hint)
- Type-aanduiding geannoteerd na parameters en variabelen.
- PEP 484
- Voorstel voor standaard type-annotaties in Python.
- from __future__ import annotations
- Instructie voor vertraagde evaluatie van annotaties (PEP 563).
- model.py
- Standaard bestandsnaam die door deze tool wordt gedownload.
Snelle referentietabel JSON-typen → Python-typen
De tool leidt automatisch het corresponderende Python-type af op basis van het type JSON-waarde:
| Voorbeeld JSON-waarde | Gegenereerd Python-type | Uitleg |
|---|---|---|
null | Optional[Any] | Null-waarde onbepaald |
true / false | bool | JSON booleans → bool |
42 | int | JSON integers → int |
3.14 | float | JSON floats → float |
"hello" | str | JSON strings → str |
["a","b"] | List[str] | String arrays → List[str] |
[1,2,3] | List[int] | Integer arrays → List[int] |
[{...},{...}] | List[Item] | Object arrays → List[Item] |
[] | List[Any] | Lege array |
{...} genest object | Onafhankelijke @dataclass | Geneste objecten genereren onafhankelijke @dataclass |
Privacy & Security
Alle bewerkingen van deze JSON naar Python tool vinden volledig lokaal plaats in de browser: JSON parsing, Python codegeneratie en bestandsdownloads worden allemaal client-side uitgevoerd via JavaScript, geen JSON-inhoud, geüploade bestanden of gegenereerde code wordt via het netwerk naar servers verzonden.
Authoritative References
- JSON Compress
- CSV naar JSON Converter
- JSON naar CSV
- JSON Diff
- JSON Escape / Unescape
- JSON afvlakken
- JSON Formatter
- JSON-generator
- JSONPath Online Query
- JSON samenvoegen
- JSON repareren
- JSON Schema Validator
- JSON sorteren
- JSON Stringify
- JSON naar HTML-tabel
- JSON naar Java
- JSON to Markdown
- JSON naar SQL
- JSON naar TOML
- JSON naar TypeScript
- XML naar JSON
- JSON naar XML
- YAML naar JSON
- JSON naar YAML
- JSON naar Python
- JSON naar Go
- JSON naar Rust
- JSON naar Swift
- JSON naar C#
- JSON naar C++
- JSON naar PHP