Использование 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
#Fidel sobre Chávez
"Volviste gigante (...)como una personalidad internacional relevante, querida, admirada y respetada por muchos millones de personas en el mundo, y de modo especial por nuestro pueblo.”
https://www.facebook.com/share/p/1G42cuJg3o/
Roberto Morales Ojeda en Facebook
#Fidel nos enseñó que debemos pensar "en los niños de hoy, que son el pueblo de mañana". Y nos pidió también que "hay que cuidarlos y velar por ellos como los pilares con que se funda una obra verdaderamente hermosa y verdaderamente útil".
Celebremos su día abrazando un nuevo Código para ellos, que reafirma nuestra voluntad política de protegerlos hoy y siempre. Trabajaremos para que esta ley se conozca, se cumpla y garantice un futuro lleno de oportunidades, alegría y justicia para todos ustedes.
https://www.facebook.com/share/p/16Xqxd567H/
Miguel Díaz-Canel Bermúdez
(@DíazCanelB) en X
Emotiva jornada en la Isla de la Juventud. Junto al Comandante Ramiro Valdés recordamos los 70 años de la excarcelación de #Fidel y de los moncadistas, y nos reunimos con jóvenes en el Presidio Modelo, para rememorar aquellos días épicos. Impactante escuchar a héroes como Ramiro.
https://x.com/DiazCanelB/status/1923111705623646399
Miguel Díaz-Canel Bermúdez
(@DiazCanelB)
¿Qué profunda conexión llevó a #Fidel el 11 de abril de 1995, hasta "la playita, al pie de Cajobabo", por donde desembarcaron Martí y Gómez 100 años antes? Nuestra historia está llena de esos misteriosos enlaces que nos convocan otra vez a Playita de Cajobabo. Aquí estamos hoy.
https://x.com/DiazCanelB/status/1910669986932142504?t=P_XMUv5MCTQXRL_8Kdq8pw&s=19
Roberto Morales Ojeda en Facebook
En este 4 de Abril, día en que celebramos el aniversario de la Organización de Pioneros José Martí y la Unión de Jóvenes Comunistas, en nombre de nuestro Partido Comunista de Cuba enviamos a cada niño, adolescente y joven cubano, un mensaje de confianza y compromiso revolucionario.
Ustedes son la savia nueva que da continuidad a la obra de la Revolución, herederos legítimos del legado de quienes nos trajeron hasta aquí, muy especialmente de #Fidel. Desde su fundación ambas organizaciones han sido pilares en la formación de valores en las nuevas generaciones.
Los pioneros, con sus pañoletas azules y rojas, simbolizan la pureza y el futuro; los jóvenes comunistas, con su militancia, encarnan la vanguardia en la defensa de la Patria y el proyecto socialista .
https://www.facebook.com/share/p/1BY8ZWeMAq/
🗣️| Si yo estoy convencido de eso, salgo todos los días a pelear, salgo todos los días a batallar, salgo todos los días a enfrentar, salgo todos los días a dar la cara; y eso es lo que tenemos que lograr hacer entre todos, pero en cada lugar.
🗣️| Así vamos a vindicar a #Cuba todos los días; así vamos a traer a #Fidel a la hora actual; así vamos a articular las fuerzas revolucionarias; así vamos a entrar en una ofensiva para superar los problemas de este momento; así vamos a lograr una participación más consciente y más creativa.
🗣️| Y así vamos a articular el trabajo político-ideológico, orientado a la defensa de la construcción socialista en nuestra Revolución, para lograr la vida más plena de nuestra gente, que está en esa prosperidad que le debemos a nuestro pueblo, que tenemos que alcanzar. Y lo tenemos que lograr también con unidad.
✍️ Presidencia Cuba
Miguel Díaz-Canel Bermúdez
(@DiazCanelB) en X
Felicidades @CNIC_Cuba , primer centro científico creado por la Revolución y semilla fértil de uno de los mayores orgullos de #Cuba: el país de hombres y mujeres de ciencia proyectado por #Fidel que también celebra hoy 39 años del @CIGBCuba . Feliz aniversario, queridos colectivos.
https://x.com/DiazCanelB/status/1940085866912989229
Dr. Roberto Morales Ojeda
(@DrRobertoMOjeda) en X
Lo afirmó #Fidel y lo comprobamos en el intercambio permanente con el pueblo: la fuerza del @PartidoPCC radica en su vinculación estrecha con las masas. #UnidosXCuba
https://x.com/DrRobertoMOjeda/status/1891817926237257990?t=TiBSwKTf34VHh3ky8SMwpA&s=19
Dr. Roberto Morales Ojeda
(Dr.RobertoMOjeda) en X
Cuando se cumplió el centenario del glorioso desembarco de Martí y Gómez por Playitas, #Fidel fue al lugar y desde allí ondeó la bandera de la Patria. Ese gesto simbólico nos deja una lección y nos inspira. #CubaViveEnSuHistoria
https://x.com/DrRobertoMOjeda/status/1910649785050136869
Dr. Roberto Morales Ojeda
(@DrRobertoMOjeda) en X
#Fidel: "Cuantos más militantes revolucionarios y con alto nivel de educación política tengamos en el centro de trabajo, más fuerza tendrá la Revolución, más apoyo en las masas, más solidez". #100AñosConFidel
https://x.com/DrRobertoMOjeda/status/1961413990971556100
En Birán, bajo la sombra de los cedros y con la presencia del General de Ejército Raúl Castro Ruz y del Primer Secretario del Comité Central del Partido y Presidente de la República, Miguel Díaz-Canel Bermúdez, el miembro del Buró Político y Secretario de Organización Roberto Morales Ojeda expresó que el centenario de #Fidel, que se celebrará oficialmente el 13 de agosto de 2026, estará precedido por un vasto programa de actividades en las que participará todo el pueblo.
#100AñosConFidel
https://www.facebook.com/share/p/1C2Vsp3vWy/
Miguel Díaz-Canel Bermúdez
Este 13 de agosto, junto a nuestro querido Raúl, estuvimos en Birán en la celebración del cumpleaños 99 de #Fidel. La jornada fue el inicio del Programa Conmemorativo por el centenario de su natalicio.
A la sombra de los cedros y algarrobos de este sitio trascendental para la Patria, "La Colmenita" nos mostró, con su magia y pureza, que el Comandante en Jefe vivirá por siempre en el corazón de su pueblo y su juventud.
#100AñosConFidel
https://www.facebook.com/share/p/1GoxbgBLUJ/