Использование Pydantic сегодня стало нормой, и это правильно. Но иногда на ревью вижу, что используют его не всегда корректно.
Например, метод BaseModel.model_dump() по умолчанию не преобразует стандартные типы, такие как datetime, UUID или Decimal, в простой сериализуемый для JSON вид. Тогда пишут кастмоный сериализатор для этих типов чтобы функция json.dump() не падала с ошибкой.
import uuid
from datetime import datetime
from decimal import Decimal
from uuid import UUID
from pydantic import BaseModel
class MyModel(BaseModel):
id: UUID
date: datetime
value: Decimal
obj = MyModel(
id=uuid.uuid4(),
date=datetime.now(),
value='1.23'
)
print(obj.model_dump())
# не подходит для json.dump
# {
# 'id': UUID('4f8c1bc4-25fd-40cd-9dbe-2c73639b0dc1'),
# 'date': datetime.datetime(2025, 12, 12, 12, 12, 12, 111111),
# 'value': Decimal('1.23')
# }
# добавляем свой кастомный сериализатор
json.dumps(obj.model_dump(), cls=MySerializer)
# {
# 'id': '4f8c1bc4-25fd-40cd-9dbe-2c73639b0dc1',
# 'date': '2025-12-12T12:12:12.111111',
# 'value': '1.23'
# }
В данном случае класс MySerializer обрабатывает datetime, UUID и Decimal. Например так:
class MySerializer(json.JSONEncoder):
def default(self, o):
if isinstance(o, Decimal):
return str(o)
elif isinstance(o, datetime):
return o.isoformat()
elif isinstance(o, UUID):
return str(o)
return super().default(o)
Специально для тех, кто всё еще так делает - в этом нет необходимости!
Pydantic может это сделать сам, просто нужно добавить параметр mode="json".
json.dumps(obj.model_dump(mode="json"))
# {
# 'id': '4f8c1bc4-25fd-40cd-9dbe-2c73639b0dc1',
# 'date': '2012-12-12T12:12:12.111111',
# 'value': '1.23'
# }
#pydantic#libs
Titulo: La Jauría
Año: 2020
Pais: Chile 🇨🇱
Género: #Drama#Thriller#Intriga#Secuestros#Desapariciones#Abusossexuales Basado en Hechos Reales
Sinopsis: Blanca Ibarra, de 17 años, estudiante y líder de un movimiento feminista, desaparece en medio de una protesta organizada por un grupo de alumnas del colegio Santa Inés tras un supuesto caso de abuso entre un profesor y una estudiante. Horas más tarde, una grabación de la joven siendo violada por un grupo de hombres aparece on line y se vuelve viral en las redes sociales. Esto provoca una frenética búsqueda para dar con el paradero de Blanca y de los responsables del hecho. Inicialmente no hay pistas, pero pronto Elisa Murillo, Olivia Fernández y Carla Farías, pertenecientes a la unidad policial especializada en delitos de género, descubren que todos los sospechosos integran un grupo de chat llamado \"La Jauría de lobos\". Detrás de esto estarían involucrados un profesor, un sacerdote, un psicólogo.
#LaJauría#Amazon
◉‿◉@TiempoVirtual