Python · Pydantic API-Modelle

Pydantic camelCase ↔ snake_case Aliase

Python-Model-Felder können snake_case bleiben, während externes JSON eine andere Namenskonvention verwendet.

Von Camel Case Converter RedaktionVeröffentlicht 12.09.2026Zuletzt geprüft

alias_generator für eine externe Konvention verwenden

from pydantic import BaseModel, ConfigDict
from pydantic.alias_generators import to_camel

class UserProfile(BaseModel):
    model_config = ConfigDict(
        alias_generator=to_camel,
        validate_by_alias=True,
        validate_by_name=True,
    )

    first_name: str
    created_at: str

profile = UserProfile.model_validate({
    "firstName": "Ada",
    "createdAt": "2026-09-12",
})

print(profile.first_name)
print(profile.model_dump(by_alias=True))
# {'firstName': 'Ada', 'createdAt': '2026-09-12'}

Pydantic bietet to_camel und to_snake; model_dump(by_alias=True) gibt externe Namen aus.

AliasGenerator verwenden, wenn Validierung und Serialisierung abweichen

from pydantic import AliasGenerator, BaseModel, ConfigDict
from pydantic.alias_generators import to_camel, to_snake

class UserProfile(BaseModel):
    model_config = ConfigDict(
        alias_generator=AliasGenerator(
            validation_alias=to_camel,
            serialization_alias=to_snake,
        ),
        validate_by_alias=True,
    )

    first_name: str
    created_at: str

profile = UserProfile.model_validate({
    "firstName": "Ada",
    "createdAt": "2026-09-12",
})

print(profile.model_dump(by_alias=True))
# {'first_name': 'Ada', 'created_at': '2026-09-12'}

Mit AliasGenerator lassen sich validation_alias und serialization_alias getrennt festlegen.

Hinweise für Produktion

  • Explizite Feld-Aliase können generierte Aliase übersteuern; Ausnahmen dokumentieren und testen.
  • Model-Aliase bevorzugen, wenn Pydantic das Payload bereits validiert; rekursive Dict-Konvertierung passt besser zu unmodelliertem JSON.
  • model_dump(by_alias=True) für externe Feldnamen verwenden.
  • Naming-Policy an der Model-/Serialisierungsgrenze halten.

JSON-Grenze online testen

Teste verschachtelte Objekte, Arrays, Ausschlüsse, Stop Paths, Präfixe, Kollisionen und Key-Diff vor der Implementierung.

.json-Datei hier ablegen oder vom Gerät auswählen

Dateien werden nur im Browser gelesen. Maximale Größe: 5 MB.

Konvertiertes JSON
{
  "userProfile": {
    "firstName": "Ada",
    "createdAt": "2026-09-12"
  }
}

Parsing, Dateilesen, Formatierung und Schlüsselkonvertierung laufen lokal im Browser. JSON wird nicht an einen Conversion-Server gesendet.