Serialisering med model_dump og aliases
Styr, hvordan Pydantic-modeller konverteres til og fra data, med model_dump, field aliases, beregnede felter og serialiseringsindstillinger for rene API-payloads.
Serialisering med model_dump og aliases er en gratis Bootcamp i FastAPI-backendudvikling-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Bootcamp i FastAPI-backendudvikling, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Bootcamp i FastAPI-backendudvikling-kurset indeholder 4 lektioner i alt.
Serialisering kontra validering
Pydantic udfører to opgaver: validering (upålidelige input bliver til en typet model) og serialisering (en model bliver til en dict eller JSON, der kan sendes ud). Denne lektion fokuserer på præcis styring af outputtet.
Grundlæggende model_dump
I Pydantic v2 omdanner model_dump() en model til en dict, mens model_dump_json() omdanner den 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())Inkludering og udelukkelse af felter
Begræns outputtet med include eller exclude for at skjule interne eller følsomme felter fra en payload.
u.model_dump(exclude={'age'})
u.model_dump(include={'name'})Udelad standardværdier og None
Brug exclude_none=True eller exclude_defaults=True til at oprette mere kompakte payloads, hvor tomme værdier udelades.
class Profile(BaseModel):
name: str
bio: str | None = None
Profile(name='Ada').model_dump(exclude_none=True)Feltsynonymer
Eksterne API'er bruger ofte navne som userName, mens Python foretrækker user_name. Et alias forbinder de to navne.
from pydantic import BaseModel, Field
class User(BaseModel):
user_name: str = Field(alias='userName')Serialisering med alias
Som standard bruger model_dump Pythons feltnavne. Angiv by_alias=True for i stedet at bruge aliasnavnene i outputtet.
u = User(userName='ada')
print(u.model_dump())
print(u.model_dump(by_alias=True))populate_by_name
Angiv model_config = ConfigDict(populate_by_name=True) for at acceptere enten feltnavnet eller aliaset ved fortolkning af input. Det giver 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 felter
Eksponér afledte værdier i outputtet med @computed_field. De vises i model_dump, men er ikke en del af inputtet.
from pydantic import computed_field
class Person(BaseModel):
first: str
last: str
@computed_field
@property
def full(self) -> str:
return self.first + ' ' + self.lastBrugerdefinerede feltserialisatorer
Brug @field_serializer til at styre, hvordan et bestemt felt gengives, f.eks. ved at formatere en datetime eller maskere en hemmelig værdi.
from pydantic import field_serializer
class Account(BaseModel):
card: str
@field_serializer('card')
def mask(self, v: str) -> str:
return '****' + v[-4:]Alias-tilknytning i almindelig Python
by_alias-transformationen ændrer blot nøglenavne. Her ser du konceptet uden 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-integration af svar
FastAPI serialiserer returværdier gennem din response_model. Angiv response_model_by_alias og udelukkelsesflag på ruten for at forme den JSON, som dit API sender ud.
@app.get('/user', response_model=User, response_model_by_alias=True)
async def get_user():
return User(user_name='ada')Hurtigt tjek
Din model har user_name: str = Field(alias='userName'). Hvad producerer model_dump(by_alias=True) som nøgle?
Opsummering
Du har fået styr på Pydantic-serialisering:
model_dump/model_dump_jsonmed include, exclude og exclude_none.- Aliaser samt
by_aliasogpopulate_by_name. - Beregnede felter og brugerdefinerede feltserialisatorer.
- Integration i FastAPI-svarmodeller.
Lær Bootcamp i FastAPI-backendudvikling med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 21
- Lektioner
- 84
Ofte stillede spørgsmål
Er lektionen “Serialisering med model_dump og aliases” gratis?
Ja — alle 3 lektioner i læringssporet Bootcamp i FastAPI-backendudvikling, inklusive “Serialisering med model_dump og aliases”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Bootcamp i FastAPI-backendudvikling-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Serialisering med model_dump og aliases”?
Styr, hvordan Pydantic-modeller konverteres til og fra data, med model_dump, field aliases, beregnede felter og serialiseringsindstillinger for rene API-payloads. Du øver dig i Bootcamp i FastAPI-backendudvikling med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Bootcamp i FastAPI-backendudvikling?
Der kræves ingen tidligere erfaring. Bootcamp i FastAPI-backendudvikling på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.
Hvor lang tid tager lektionen “Serialisering med model_dump og aliases”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Bootcamp i FastAPI-backendudvikling-lektion?
Ja. Alle Bootcamp i FastAPI-backendudvikling-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Pydantic-feltvalidering og validators
- Tilpassede datatyper og indstillinger
- Indlejrede modeller og rekursive strukturer
- Serialisering med model_dump og aliases