Penyirian dengan model_dump dan Alias
Kawal cara model Pydantic menukar data kepada dan daripadanya menggunakan model_dump, alias medan, medan terhitung dan pilihan penyirian untuk muatan API yang kemas.
Penyirian dengan model_dump dan Alias ialah pelajaran Kem Intensif Pembangunan Bahagian Belakang FastAPI percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Kem Intensif Pembangunan Bahagian Belakang FastAPI, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Kem Intensif Pembangunan Bahagian Belakang FastAPI merangkumi sejumlah 4 pelajaran.
Penyusunan Bersiri berbanding Pengesahan
Pydantic melakukan dua tugas: pengesahan (input yang tidak dipercayai menjadi model bertaip) dan penyusunan bersiri (model menjadi kamus atau JSON untuk dihantar keluar). Pelajaran ini memfokuskan kawalan tepat terhadap bahagian output.
Asas model_dump
Dalam Pydantic v2, model_dump() menukar model menjadi kamus dan model_dump_json() menjadi rentetan JSON.
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())Menyertakan dan Mengecualikan Medan
Ringkaskan output dengan include atau exclude untuk menyembunyikan medan dalaman atau sensitif daripada muatan data.
u.model_dump(exclude={'age'})
u.model_dump(include={'name'})Menggugurkan Nilai Lalai dan None
Gunakan exclude_none=True atau exclude_defaults=True untuk menghasilkan muatan data yang lebih ringkas dengan menggugurkan nilai kosong.
class Profile(BaseModel):
name: str
bio: str | None = None
Profile(name='Ada').model_dump(exclude_none=True)Alias Medan
API luaran sering menggunakan nama seperti userName, manakala Python lebih mengutamakan user_name. Alias memetakan kedua-duanya.
from pydantic import BaseModel, Field
class User(BaseModel):
user_name: str = Field(alias='userName')Menyusun Bersiri Mengikut Alias
Secara lalai, model_dump menggunakan nama medan Python. Hantarkan by_alias=True untuk mengeluarkan nama alias pula.
u = User(userName='ada')
print(u.model_dump())
print(u.model_dump(by_alias=True))populate_by_name
Tetapkan model_config = ConfigDict(populate_by_name=True) untuk menerima sama ada nama medan atau alias semasa menghuraikan input, lalu memberikan fleksibiliti pada kedua-dua hujung.
from pydantic import ConfigDict
class User(BaseModel):
model_config = ConfigDict(populate_by_name=True)
user_name: str = Field(alias='userName')Medan Terhitung
Dedahkan nilai terbitan dalam output dengan @computed_field. Nilai ini muncul dalam model_dump tetapi bukan sebahagian daripada input.
from pydantic import computed_field
class Person(BaseModel):
first: str
last: str
@computed_field
@property
def full(self) -> str:
return self.first + ' ' + self.lastPenyusun Bersiri Medan Tersuai
Gunakan @field_serializer untuk mengawal cara medan tertentu dipaparkan, contohnya memformat tarikh masa atau menyamarkan rahsia.
from pydantic import field_serializer
class Account(BaseModel):
card: str
@field_serializer('card')
def mask(self, v: str) -> str:
return '****' + v[-4:]Pemetaan Alias dalam Python Biasa
Transformasi by_alias hanyalah penamaan semula kunci. Berikut ialah konsepnya tanpa 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)Integrasi Respons FastAPI
FastAPI menyusun bersiri nilai yang dikembalikan melalui response_model anda. Tetapkan response_model_by_alias dan bendera pengecualian pada laluan untuk membentuk JSON yang dikeluarkan oleh API anda.
@app.get('/user', response_model=User, response_model_by_alias=True)
async def get_user():
return User(user_name='ada')Semakan Pantas
Model anda mempunyai user_name: str = Field(alias='userName'). Apakah yang dihasilkan oleh model_dump(by_alias=True) untuk kunci tersebut?
Rumusan
Anda telah menguasai penyusunan bersiri Pydantic:
model_dump/model_dump_jsondengan include, exclude dan exclude_none.- Alias bersama
by_aliasdanpopulate_by_name. - Medan terhitung dan penyusun bersiri medan tersuai.
- Menghubungkannya dengan model respons FastAPI.
Pelajari Kem Intensif Pembangunan Bahagian Belakang FastAPI dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 21
- Pelajaran
- 84
Soalan Lazim
Adakah pelajaran “Penyirian dengan model_dump dan Alias” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Kem Intensif Pembangunan Bahagian Belakang FastAPI, termasuk “Penyirian dengan model_dump dan Alias”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Kem Intensif Pembangunan Bahagian Belakang FastAPI merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Penyirian dengan model_dump dan Alias”?
Kawal cara model Pydantic menukar data kepada dan daripadanya menggunakan model_dump, alias medan, medan terhitung dan pilihan penyirian untuk muatan API yang kemas. Anda berlatih Kem Intensif Pembangunan Bahagian Belakang FastAPI menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Kem Intensif Pembangunan Bahagian Belakang FastAPI?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Kem Intensif Pembangunan Bahagian Belakang FastAPI di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “Penyirian dengan model_dump dan Alias” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Kem Intensif Pembangunan Bahagian Belakang FastAPI ini?
Ya. Setiap pelajaran Kem Intensif Pembangunan Bahagian Belakang FastAPI menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Pengesahan Medan dan Pengesah Pydantic
- Jenis Data Tersuai dan Tetapan
- Model Bersarang dan Struktur Rekursif
- Penyirian dengan model_dump dan Alias