Serialisering med model_dump och alias
Styr hur Pydantic-modeller omvandlas till och från data med model_dump, fältalias, beräknade fält och serialiseringsalternativ för rena API-payloads.
Serialisering med model_dump och alias är en gratis lektion i Bootcamp i backendutveckling med FastAPI på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Bootcamp i backendutveckling med FastAPI, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Bootcamp i backendutveckling med FastAPI innehåller totalt 4 lektioner.
Serialisering kontra validering
Pydantic gör två saker: validering (opålitliga indata blir en typad modell) och serialisering (en modell blir en dict eller JSON som kan skickas ut). Den här lektionen fokuserar på att styra utdata exakt.
Grunderna i model_dump
I Pydantic v2 omvandlar model_dump() en modell till en dict och model_dump_json() till en JSON-sträng.
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())Inkludera och exkludera fält
Begränsa utdata med include eller exclude för att dölja interna eller känsliga fält från en payload.
u.model_dump(exclude={'age'})
u.model_dump(include={'name'})Ta bort standardvärden och None
Använd exclude_none=True eller exclude_defaults=True för att skapa mindre payloader där tomma värden utelämnas.
class Profile(BaseModel):
name: str
bio: str | None = None
Profile(name='Ada').model_dump(exclude_none=True)Fältalias
Externa API:er använder ofta namn som userName, medan Python föredrar user_name. Ett alias mappar mellan dem.
from pydantic import BaseModel, Field
class User(BaseModel):
user_name: str = Field(alias='userName')Serialisera med alias
Som standard använder model_dump Pythons fältnamn. Skicka med by_alias=True för att använda aliasnamnen i stället.
u = User(userName='ada')
print(u.model_dump())
print(u.model_dump(by_alias=True))populate_by_name
Ange model_config = ConfigDict(populate_by_name=True) för att acceptera antingen fältnamnet eller aliaset vid tolkning av indata. Då blir ni flexibla i båda riktningarna.
from pydantic import ConfigDict
class User(BaseModel):
model_config = ConfigDict(populate_by_name=True)
user_name: str = Field(alias='userName')Beräknade fält
Exponera härledda värden i utdata med @computed_field. De visas i model_dump men ingår inte i indata.
from pydantic import computed_field
class Person(BaseModel):
first: str
last: str
@computed_field
@property
def full(self) -> str:
return self.first + ' ' + self.lastEgna fältserialiserare
Använd @field_serializer för att styra hur ett specifikt fält återges, till exempel för att formatera en datetime eller maskera en hemlighet.
from pydantic import field_serializer
class Account(BaseModel):
card: str
@field_serializer('card')
def mask(self, v: str) -> str:
return '****' + v[-4:]Aliasmappning i vanlig Python
Transformeringen med by_alias innebär bara att nycklar byter namn. Här visas konceptet utan 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-integrering av svar
FastAPI serialiserar returvärden via er response_model. Ange response_model_by_alias och exkluderingsflaggor på routen för att forma den JSON som API:et skickar ut.
@app.get('/user', response_model=User, response_model_by_alias=True)
async def get_user():
return User(user_name='ada')Snabb kontroll
Er modell har user_name: str = Field(alias='userName'). Vilket nyckelnamn producerar model_dump(by_alias=True)?
Sammanfattning
Ni behärskar Pydantic-serialisering:
model_dump/model_dump_jsonmed include, exclude och exclude_none.- Alias samt
by_aliasochpopulate_by_name. - Beräknade fält och egna fältserialiserare.
- Integrering med FastAPI:s svarsmodeller.
Lär dig Bootcamp i backendutveckling med FastAPI med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 21
- Lektioner
- 84
Vanliga frågor
Är lektionen ”Serialisering med model_dump och alias” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Bootcamp i backendutveckling med FastAPI, inklusive ”Serialisering med model_dump och alias”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Bootcamp i backendutveckling med FastAPI innehåller totalt 4 lektioner.
Vad lär jag mig i ”Serialisering med model_dump och alias”?
Styr hur Pydantic-modeller omvandlas till och från data med model_dump, fältalias, beräknade fält och serialiseringsalternativ för rena API-payloads. Ni övar på Bootcamp i backendutveckling med FastAPI med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Bootcamp i backendutveckling med FastAPI?
Du behöver inga förkunskaper. Utbildningen i Bootcamp i backendutveckling med FastAPI på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.
Hur lång tid tar lektionen ”Serialisering med model_dump och alias”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Bootcamp i backendutveckling med FastAPI-lektionen?
Ja. Varje Bootcamp i backendutveckling med FastAPI-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Pydantic-fältvalidering och validatorer
- Anpassade datatyper och inställningar
- Nästadade modeller och rekursiva strukturer
- Serialisering med model_dump och alias