# Serialização com Pydantic no [[Linguagem de programação Python|Python]] > [!NOTE] Serialização com Pydantic no [[Linguagem de programação Python|Python]] > No Pydantic, os termos "serializar" e "dump" são usados de forma intercambiável. Ambos se referem ao processo de converter um modelo Pydantic em um dicionário ([[Linguagem de programação Python|Python]] `dict`) ou em uma string codificada em [[JSON]]. **:: Referência ::** [Serialization - Pydantic](https://docs.pydantic.dev/latest/concepts/serialization/) ## Casos de Uso Comuns - **APIs Web:** Enviar dados de resposta em formato JSON para clientes. - **Armazenamento de Dados:** Salvar o estado de objetos em arquivos JSON ou bancos de dados. - **Comunicação entre Serviços:** Trocar informações entre diferentes microserviços. - **Configuração:** Ler e escrever arquivos de configuração em formato JSON. Ao utilizar `model_dump()` e `model_dump_json()` com seus respectivos parâmetros, você tem um controle robusto sobre como seus modelos Pydantic são representados em formatos externos, garantindo que os dados sejam transmitidos ou armazenados da maneira correta. ## Exemplos curtos ```python from typing import Any from pydantic import BaseModel, Field, Json class BarModel(BaseModel): whatever: int class FooBarModel(BaseModel): banana: float | None = 1.1 foo: str = Field(serialization_alias='foo_alias') bar: BarModel m = FooBarModel(banana=3.14, foo='hello', bar={'whatever': 123}) # returns a dictionary: print(m.model_dump()) #> {'banana': 3.14, 'foo': 'hello', 'bar': {'whatever': 123}} print(m.model_dump(include={'foo', 'bar'})) #> {'foo': 'hello', 'bar': {'whatever': 123}} print(m.model_dump(exclude={'foo', 'bar'})) #> {'banana': 3.14} print(m.model_dump(by_alias=True)) #> {'banana': 3.14, 'foo_alias': 'hello', 'bar': {'whatever': 123}} print( FooBarModel(foo='hello', bar={'whatever': 123}).model_dump( exclude_unset=True ) ) #> {'foo': 'hello', 'bar': {'whatever': 123}} print( FooBarModel(banana=1.1, foo='hello', bar={'whatever': 123}).model_dump( exclude_defaults=True ) ) #> {'foo': 'hello', 'bar': {'whatever': 123}} print( FooBarModel(foo='hello', bar={'whatever': 123}).model_dump( exclude_defaults=True ) ) #> {'foo': 'hello', 'bar': {'whatever': 123}} print( FooBarModel(banana=None, foo='hello', bar={'whatever': 123}).model_dump( exclude_none=True ) ) #> {'foo': 'hello', 'bar': {'whatever': 123}} class Model(BaseModel): x: list[Json[Any]] print(Model(x=['{"a": 1}', '[1, 2]']).model_dump()) #> {'x': [{'a': 1}, [1, 2]]} print(Model(x=['{"a": 1}', '[1, 2]']).model_dump(round_trip=True)) #> {'x': ['{"a":1}', '[1,2]']} ``` # Notas