You can customize the Serialisation on a model using the json_encoders config property, the keys should be types, and the values should be functions which serialise that type.
json_customize_serialization.py
from pydantic import BaseModel, ValidationError
from datetime import datetime
class Employee(BaseModel):
    id: int
    name: str
    age: int
    dateOfBirth: datetime
    class Config:
        json_encoders = {
            datetime: lambda v: v.timestamp()
        }
emp1 = Employee(id = 1, name = 'Ptr', age = 23, dateOfBirth = datetime(1988, 6, 6, 12, 13, 14))
emp1Json = emp1.json()
print('emp1Json -> ' + emp1Json)
Output
emp1Json -> {"id": 1, "name": "Ptr", "age": 23, "dateOfBirth": 581582594.0}
Note
In case of inheritance, child encoders take precedence over parent encoders.
 
Previous Next Home
No comments:
Post a Comment