Serialisering med model_dump og aliaser
Styr hvordan Pydantic-modeller konverteres til og fra data ved hjelp av model_dump, feltaliaser, beregnede felt og serialiseringsalternativer for ryddige API-payloads.
Serialisering med model_dump og aliaser er en gratis leksjon i Bootcamp i backendutvikling med FastAPI på CoddyKit. Dette er leksjon 4 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Bootcamp i backendutvikling med FastAPI, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Bootcamp i backendutvikling med FastAPI inneholder totalt 4 leksjoner.
Serialisering kontra validering
Pydantic har to oppgaver: validering (uklarerte inndata blir til en typet modell) og serialisering (en modell blir til en dict eller JSON som kan sendes ut). Denne leksjonen fokuserer på presis kontroll av utdataene.
Grunnleggende om model_dump
I Pydantic v2 gjør model_dump() en modell om til en dict, mens model_dump_json() gjør den om til en JSON-streng.
from pydantic import BaseModel
class User(BaseModel):
name: str
age: int
u = User(name='Ada', age=36)
print(u.model_dump())
print(u.model_dump_json())Inkludere og utelate felt
Begrens utdataene med include eller exclude for å skjule interne eller sensitive felt fra en nyttelast.
u.model_dump(exclude={'age'})
u.model_dump(include={'name'})Utelate standardverdier og None
Bruk exclude_none=True eller exclude_defaults=True for å lage mindre nyttelaster som utelater tomme verdier.
class Profile(BaseModel):
name: str
bio: str | None = None
Profile(name='Ada').model_dump(exclude_none=True)Feltsaliaser
Eksterne API-er bruker ofte navn som userName, mens Python foretrekker user_name. Et alias oppretter en kobling mellom dem.
from pydantic import BaseModel, Field
class User(BaseModel):
user_name: str = Field(alias='userName')Serialisere med alias
Som standard bruker model_dump navnene på Python-feltene. Send inn by_alias=True for å bruke aliasnavnene i utdataene i stedet.
u = User(userName='ada')
print(u.model_dump())
print(u.model_dump(by_alias=True))populate_by_name
Sett model_config = ConfigDict(populate_by_name=True) for å godta enten feltnavnet eller aliaset når inndata analyseres. Da får du fleksibilitet i begge ender.
from pydantic import ConfigDict
class User(BaseModel):
model_config = ConfigDict(populate_by_name=True)
user_name: str = Field(alias='userName')Beregnede felt
Eksponer avledede verdier i utdataene med @computed_field. De vises i model_dump, men er ikke en del av inndataene.
from pydantic import computed_field
class Person(BaseModel):
first: str
last: str
@computed_field
@property
def full(self) -> str:
return self.first + ' ' + self.lastEgendefinerte feltserialisatorer
Bruk @field_serializer til å styre hvordan et bestemt felt gjengis, for eksempel ved å formatere en datetime eller maskere en hemmelighet.
from pydantic import field_serializer
class Account(BaseModel):
card: str
@field_serializer('card')
def mask(self, v: str) -> str:
return '****' + v[-4:]Alias-tilordning i vanlig Python
Transformasjonen med by_alias er bare en omdøping av nøkler. Her ser du konseptet uten Pydantic.
data = {'user_name': 'ada', 'user_age': 36}
alias = {'user_name': 'userName', 'user_age': 'userAge'}
out = {alias[k]: v for k, v in data.items()}
print(out)FastAPI-integrasjon for svar
FastAPI serialiserer returverdier gjennom response_model. Sett response_model_by_alias og flagg for utelating på ruten for å forme JSON-en API-et sender ut.
@app.get('/user', response_model=User, response_model_by_alias=True)
async def get_user():
return User(user_name='ada')Rask sjekk
Modellen din har user_name: str = Field(alias='userName'). Hva blir nøkkelen fra model_dump(by_alias=True)?
Oppsummering
Du har fått kontroll på Pydantic-serialisering:
model_dump/model_dump_jsonmed include, exclude og exclude_none.- Aliaser samt
by_aliasogpopulate_by_name. - Beregnede felt og egendefinerte feltserialisatorer.
- Kobling til FastAPI-svarmodeller.
Lær deg Bootcamp i backendutvikling med FastAPI med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 21
- Leksjoner
- 84
Ofte stilte spørsmål
Er leksjonen «Serialisering med model_dump og aliaser» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Bootcamp i backendutvikling med FastAPI, inkludert «Serialisering med model_dump og aliaser», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Bootcamp i backendutvikling med FastAPI inneholder totalt 4 leksjoner.
Hva lærer jeg i «Serialisering med model_dump og aliaser»?
Styr hvordan Pydantic-modeller konverteres til og fra data ved hjelp av model_dump, feltaliaser, beregnede felt og serialiseringsalternativer for ryddige API-payloads. Du øver på Bootcamp i backendutvikling med FastAPI med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Bootcamp i backendutvikling med FastAPI?
Ingen tidligere erfaring er nødvendig. Bootcamp i backendutvikling med FastAPI på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «Serialisering med model_dump og aliaser»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Bootcamp i backendutvikling med FastAPI-leksjonen?
Ja. Alle Bootcamp i backendutvikling med FastAPI-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Pydantic-feltvalidering og validatorer
- Egendefinerte datatyper og innstillinger
- Nestede modeller og rekursive strukturer
- Serialisering med model_dump og aliaser