Serialização com model_dump e aliases
Controle como os modelos Pydantic convertem dados de e para seus formatos usando model_dump, aliases de campos, campos calculados e opções de serialização para obter cargas úteis de API organizadas.
Serialização com model_dump e aliases é uma aula grátis de FastAPI Backend Development Bootcamp no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de FastAPI Backend Development Bootcamp, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de FastAPI Backend Development Bootcamp inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
Serialization vs Validation
Pydantic does two jobs: validation (untrusted input becomes a typed model) and serialization (a model becomes a dict or JSON to send out). This lesson focuses on controlling the output side precisely.
model_dump Basics
In Pydantic v2, model_dump() turns a model into a dict and model_dump_json() into a JSON string.
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())Including and Excluding Fields
Trim the output with include or exclude to hide internal or sensitive fields from a payload.
u.model_dump(exclude={'age'})
u.model_dump(include={'name'})Dropping Defaults and None
Use exclude_none=True or exclude_defaults=True to produce leaner payloads that omit empty values.
class Profile(BaseModel):
name: str
bio: str | None = None
Profile(name='Ada').model_dump(exclude_none=True)Field Aliases
External APIs often use names like userName while Python prefers user_name. An alias maps between them.
from pydantic import BaseModel, Field
class User(BaseModel):
user_name: str = Field(alias='userName')Serializing by Alias
By default model_dump uses the Python field names. Pass by_alias=True to output the alias names instead.
u = User(userName='ada')
print(u.model_dump())
print(u.model_dump(by_alias=True))populate_by_name
Set model_config = ConfigDict(populate_by_name=True) to accept either the field name or the alias when parsing input, giving you flexibility on both ends.
from pydantic import ConfigDict
class User(BaseModel):
model_config = ConfigDict(populate_by_name=True)
user_name: str = Field(alias='userName')Computed Fields
Expose derived values in the output with @computed_field. They appear in model_dump but are not part of the input.
from pydantic import computed_field
class Person(BaseModel):
first: str
last: str
@computed_field
@property
def full(self) -> str:
return self.first + ' ' + self.lastCustom Field Serializers
Use @field_serializer to control how a specific field is rendered, for example formatting a datetime or masking a secret.
from pydantic import field_serializer
class Account(BaseModel):
card: str
@field_serializer('card')
def mask(self, v: str) -> str:
return '****' + v[-4:]Alias Mapping in Plain Python
The by_alias transform is just key renaming. Here is the concept without 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 Response Integration
FastAPI serializes return values through your response_model. Set response_model_by_alias and exclusion flags on the route to shape the JSON your API emits.
@app.get('/user', response_model=User, response_model_by_alias=True)
async def get_user():
return User(user_name='ada')Quick Check
Your model has user_name: str = Field(alias='userName'). What does model_dump(by_alias=True) produce for the key?
Recap
You mastered Pydantic serialization:
model_dump/model_dump_jsonwith include, exclude, and exclude_none.- Aliases plus
by_aliasandpopulate_by_name. - Computed fields and custom field serializers.
- Wiring it into FastAPI response models.
Perguntas Frequentes
A aula “Serialização com model_dump e aliases” é grátis?
Sim — o texto completo de “Serialização com model_dump e aliases” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de FastAPI Backend Development Bootcamp, atualize para CoddyKit PRO. O curso de FastAPI Backend Development Bootcamp inclui 4 aulas no total.
O que vou aprender em “Serialização com model_dump e aliases”?
Controle como os modelos Pydantic convertem dados de e para seus formatos usando model_dump, aliases de campos, campos calculados e opções de serialização para obter cargas úteis de API organizadas. Você pratica FastAPI Backend Development Bootcamp com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar FastAPI Backend Development Bootcamp?
Nenhuma experiência prévia é necessária. FastAPI Backend Development Bootcamp no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Serialização com model_dump e aliases”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de FastAPI Backend Development Bootcamp?
Sim. Cada aula de FastAPI Backend Development Bootcamp inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Validação de campos e validadores do Pydantic
- Tipos de dados e configurações personalizados
- Modelos aninhados e estruturas recursivas
- Serialização com model_dump e aliases