Serialisointi model_dumpilla ja aliaksilla
Hallinnoikaa sitä, miten Pydantic-mallit muunnetaan dataksi ja datasta model_dumpin, kenttäaliasten, laskettujen kenttien ja serialisointiasetusten avulla selkeitä API-kuormia varten.
Serialisointi model_dumpilla ja aliaksilla on ilmainen FastAPI-backend-kehityksen intensiivikurssi-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu FastAPI-backend-kehityksen intensiivikurssi-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. FastAPI-backend-kehityksen intensiivikurssi-kurssilla on yhteensä 4 oppituntia.
Serialisointi ja validointi
Pydantic hoitaa kaksi tehtävää: validoinnin (epäluotetusta syötteestä tulee tyypitetty malli) ja serialisoinnin (mallista tulee lähetettävä dict tai JSON). Tässä oppitunnissa keskitytään tulosteen tarkkaan hallintaan.
model_dump-perusteet
Pydantic v2:ssa model_dump() muuntaa mallin dict-objektiksi ja model_dump_json() JSON-merkkijonoksi.
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())Kenttien sisällyttäminen ja poissulkeminen
Rajaa tulostetta include- tai exclude-parametrilla, jotta sisäiset tai arkaluontoiset kentät eivät päädy payloadiin.
u.model_dump(exclude={'age'})
u.model_dump(include={'name'})Oletusarvojen ja None-arvojen poistaminen
Käytä asetuksia exclude_none=True tai exclude_defaults=True muodostaaksesi kevyempiä payloadeja, joista tyhjät arvot on jätetty pois.
class Profile(BaseModel):
name: str
bio: str | None = None
Profile(name='Ada').model_dump(exclude_none=True)Kenttien aliakset
Ulkoiset API:t käyttävät usein nimiä kuten userName, kun taas Pythonissa suositaan nimeä user_name. Alias yhdistää nämä nimet.
from pydantic import BaseModel, Field
class User(BaseModel):
user_name: str = Field(alias='userName')Serialisointi aliaksen avulla
Oletusarvoisesti model_dump käyttää Pythonin kenttien nimiä. Välitä by_alias=True, jotta tulosteessa käytetään aliaksia.
u = User(userName='ada')
print(u.model_dump())
print(u.model_dump(by_alias=True))populate_by_name
Aseta model_config = ConfigDict(populate_by_name=True), jotta syötettä jäsennettäessä hyväksytään joko kentän nimi tai alias. Näin molemmat suunnat ovat joustavia.
from pydantic import ConfigDict
class User(BaseModel):
model_config = ConfigDict(populate_by_name=True)
user_name: str = Field(alias='userName')Lasketut kentät
Exposeeraa johdetut arvot tulosteeseen käyttämällä @computed_field-annotaatiota. Ne näkyvät model_dump-tulosteessa, mutta eivät kuulu syötteeseen.
from pydantic import computed_field
class Person(BaseModel):
first: str
last: str
@computed_field
@property
def full(self) -> str:
return self.first + ' ' + self.lastMukautetut kenttäsarjallistajat
Käytä @field_serializer-annotaatiota määrittääksesi, miten tietty kenttä esitetään, esimerkiksi päivämääräajan muotoiluun tai salaisuuden peittämiseen.
from pydantic import field_serializer
class Account(BaseModel):
card: str
@field_serializer('card')
def mask(self, v: str) -> str:
return '****' + v[-4:]Alias-kenttien muunnos puhtaalla Pythonilla
by_alias-muunnos tarkoittaa vain avainten uudelleennimeämistä. Tässä sama idea ilman Pydanticia.
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-vastausten integrointi
FastAPI serialisoi palautusarvot response_model-mallin kautta. Määritä reitille response_model_by_alias ja poissulkemisasetukset, jotta voit muotoilla API:n tuottaman JSONin.
@app.get('/user', response_model=User, response_model_by_alias=True)
async def get_user():
return User(user_name='ada')Pikatarkistus
Mallissasi on user_name: str = Field(alias='userName'). Minkä avaimen model_dump(by_alias=True) tuottaa?
Kertaus
Opit Pydanticin serialisoinnin:
model_dump/model_dump_jsonsekä include-, exclude- ja exclude_none-asetukset.- Aliakset sekä
by_alias- japopulate_by_name-asetukset. - Lasketut kentät ja mukautetut kenttäsarjallistajat.
- Niiden yhdistämisen FastAPI-vastausmalleihin.
Opi FastAPI-backend-kehityksen intensiivikurssi tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 21
- Oppitunnit
- 84
Usein kysytyt kysymykset
Onko oppitunti ”Serialisointi model_dumpilla ja aliaksilla” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa FastAPI-backend-kehityksen intensiivikurssi-oppimispolun 3 oppituntia, myös oppitunnin “Serialisointi model_dumpilla ja aliaksilla”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. FastAPI-backend-kehityksen intensiivikurssi-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Serialisointi model_dumpilla ja aliaksilla”?
Hallinnoikaa sitä, miten Pydantic-mallit muunnetaan dataksi ja datasta model_dumpin, kenttäaliasten, laskettujen kenttien ja serialisointiasetusten avulla selkeitä API-kuormia varten. Harjoittelet FastAPI-backend-kehityksen intensiivikurssi-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni FastAPI-backend-kehityksen intensiivikurssi-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin FastAPI-backend-kehityksen intensiivikurssi-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.
Kuinka kauan ”Serialisointi model_dumpilla ja aliaksilla”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä FastAPI-backend-kehityksen intensiivikurssi-oppitunnilla?
Kyllä. Jokainen FastAPI-backend-kehityksen intensiivikurssi-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Pydantic-kenttien validointi ja validaattorit
- Mukautetut tietotyypit ja asetukset
- Sisäkkäiset mallit ja rekursiiviset rakenteet
- Serialisointi model_dumpilla ja aliaksilla