Pydantic, a leading data validation library in Python, streamlines the creation of data models with its powerful features. One such feature is the model_dump method, offering a convenient way to serialize Pydantic models. However, there are situations where excluding specific fields from the serialized output becomes crucial. This blog post explores the need for field exclusion, introduces the Config class in Pydantic, and provides a step-by-step guide on removing fields from model_dump.
What We Need Field Exclusion
In various scenarios, certain fields in a Pydantic model might be sensitive, redundant, or unnecessary for serialization. By excluding these fields, developers can enhance performance and reduce payload size, especially in situations where optimized communication between components is critical.
How to remove the fields from serialization in Pydantic
Below is the code that can be used to exclude a field from model_dump() output.
from pydantic import BaseModel
from pydantic import Field
from typing import List
class SubModel(BaseModel):
country: str = Field(default="India")
state: str = Field(default="New Delhi", exclude=True)
class MyModel(BaseModel):
name: str
age: int
sub_model: SubModel
sm = SubModel()
m = MyModel(name="John", age=30, sub_model=sm)
d = m.model_dump()
print(d)
In the provided code, we have two Pydantic models: SubModel and MyModel. The SubModel contains default values for its fields, and Field is used to provide additional configuration. The MyModel includes a field of type SubModel. The instance of SubModel is then created, and an instance of MyModel is initialized with a name, age, and the previously created SubModel instance. Finally, the model_dump method is used to serialize the MyModel instance.
In the SubModel class, we have excluded the state field from serialization using exclude = True keyword.
Thanks for the reading. Please share your inputs in the comment section.