Использование 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
ФУТБОЛКА «СКОРОСТЬ ДРИФТА» | ОФИЦИАЛЬНЫЙ МЕРЧ | ZENLESS ZONE ZERO
⚡️Детали:
⭐ Релиз в КОНЦЕ МАЯ 2026
⭐Размеры: XS-XL
⭐Материал: 85% хлопок, 15% полиэстер
⭐ Всего 2 цвета на выбор: коричневый, черный
⭐ Больше фото и таблицы: тык
💱Цены: 4700 🪙 (рублей)
👻Доставка:
🅰️Цена указана С УЧЕТОМ доставки ДО РФ
✉️Обратная связь:
⁉️Вопросы о доставке, оплате и тд.
👀Отзывы
💱Купить:
🅰️@astroknight_bot
🅰️ С реальными менеджерами
🅰️ Товар на сайте: тык
#ZZZ@astroknightshop
БЕЙСБОЛКА «СКОРОСТЬ ДРИФТА» | ОФИЦИАЛЬНЫЙ МЕРЧ | ZENLESS ZONE ZERO
⚡️Детали:
⭐ Релиз в КОНЦЕ МАЯ 2026
⭐Размеры: мужская 49-62 см; женская 47-60 см
⭐Материал: 100% полиэфирное волокно; подкладка козырька - 100% хлопок
⭐ Всего 5 видов на выбор: черная мужская с квадратными полями, черная женская с закругленными полями и круглым верхом, коричневая мужская с квадратными полями, коричневая женская с закругленными полями и круглым верхом, черная мужская с плоским козырьком и квадратным верхом
⭐ Больше фото и таблицы: тык
💱Цены: 3450 🪙 (рублей)
👻Доставка:
🅰️Цена указана С УЧЕТОМ доставки ДО РФ
✉️Обратная связь:
⁉️Вопросы о доставке, оплате и тд.
👀Отзывы
💱Купить:
🅰️@astroknight_bot
🅰️ С реальными менеджерами
🅰️ Товар на сайте: тык
#ZZZ@astroknightshop
ПЛЮШЕВАЯ ИГРУШКА-ПОДУШКА В ВИДЕ ОСЬМИНОГА АНГЕЛОВ НАВАЖДЕНИЯ | ОФИЦИАЛЬНЫЙ МЕРЧ | ZENLESS ZONE ZERO
⚡️Детали:
⭐ Релиз в КОНЦЕ СЕНТЯБРЯ 2026
⭐Материал: 100% полиэфирное волокно
⭐Размер: 40 см
💱Цены: 5550 🪙 (рублей)
👻Доставка:
🅰️Цена указана С УЧЕТОМ доставки ДО РФ
✉️Обратная связь:
⁉️Вопросы о доставке, оплате и тд.
👀Отзывы
💱Купить:
🅰️@astroknight_bot
🅰️ С реальными менеджерами
🅰️ Товар на сайте: тык
#ZZZ@astroknightshop
ПЛЮШЕВАЯ ИГРУШКА-ПОДУШКА В ВИДЕ БАНБУ АНГЕЛОВ НАВАЖДЕНИЯ | ОФИЦИАЛЬНЫЙ МЕРЧ | ZENLESS ZONE ZERO
⚡️Детали:
⭐ Релиз в КОНЦЕ СЕНТЯБРЯ 2026
⭐Материал: 100% полиэстер; наполнитель - 87% полиэстер, 13% полипропилен
⭐Размер: 40 см
💱Цены: 5550 🪙 (рублей)
👻Доставка:
🅰️Цена указана С УЧЕТОМ доставки ДО РФ
✉️Обратная связь:
⁉️Вопросы о доставке, оплате и тд.
👀Отзывы
💱Купить:
🅰️@astroknight_bot
🅰️ С реальными менеджерами
🅰️ Товар на сайте: тык
#ZZZ@astroknightshop
КРЕПЯЩИЙСЯ СВЕТИЛЬНИК-ВЫВЕСКА | ОФИЦИАЛЬНЫЙ МЕРЧ | ZENLESS ZONE ZERO
⚡️Детали:
⭐ Релиз в КОНЦЕИЮЛЯ2026
⭐Размер: 46х40х17 мм
⭐ Всего 3 стиля на выбор: магазин Yum Cha Sin, минимаркет 141, San-Z-студия
💱Цена: 1400 🪙 (рублей)
👻Доставка:
🅰️Цена указана С УЧЕТОМ доставки ДО РФ
✉️Обратная связь:
⁉️Вопросы о доставке, оплате и тд.
👀Отзывы
💱Купить:
🅰️@astroknight_bot
🅰️ С реальными менеджерами
🅰️ Товар на сайте: тык
#ZZZ@astroknightshop
МЕТАЛЛИЧЕСКИЕ ПИНЫ С ФРАКЦИЯМИ VOL.4 | ОФИЦИАЛЬНЫЙ МЕРЧ | ZENLESS ZONE ZERO
⚡️Детали:
⭐ Релиз в КОНЦЕИЮЛЯ2026
⭐Размер: Школа горы Юнькуй - 52х38 мм; Хижина Кошмаров - 52х53 мм; Надзорная служба Крампус - 53,5х49 мм
⭐ Vol. 1 - тут
⭐ Vol. 2 - тут
⭐ Vol. 3 - тут
⭐ Всего 3 стиля на выбор
💱Цена: 1100 🪙 (рублей)
👻Доставка:
🅰️Цена указана С УЧЕТОМ доставки ДО РФ
✉️Обратная связь:
⁉️Вопросы о доставке, оплате и тд.
👀Отзывы
💱Купить:
🅰️@astroknight_bot
🅰️ С реальными менеджерами
🅰️ Товар на сайте: тык
#ZZZ@astroknightshop
БЫСТРОЗАРЯЖАЕМЫЙ ПОРТАТИВНЫЙ АККУМУЛЯТОР С РАСШИРЯЕМОЙ ЕМКОСТЬЮ | ОФИЦИАЛЬНЫЙ МЕРЧ | ZENLESS ZONE ZERO
⚡️Детали:
⭐ Релиз в КОНЦЕ МАЯ 2026
⭐Размер: полный комплект 80,4х28х116 мм; зарядный модуль 80,4х28х66,5 мм; модуль расширения 80,4х28х43,6 мм
⭐ Материал: огнестойкий пластик
⭐Номинальная емкость: 8400 мАч (5В-3А)
⭐Максимальная мощность зарядки: 22,5 Вт
⭐ Технические характеристики: Вход USB-C: 5В-3А, 9В-2А, 12В-1,5А, макс. мощность 18 Вт; Выход USB-C: 5В-3А, 9В-2,22А, 10В-2,25А, 12В-1,67А, макс. мощность 22,5 Вт
⭐Всего 2 цвета (емкость 10000 мАч) на выбор: серый и черный
⭐Всего 2 цвета (емкость 5000 мАч) на выбор: серый и оранжевый
⭐Всего 4 цвета (емкость 10000 мАч + 5000 мАч) на выбор: черно-оранжевый, черно-серый, серо-оранжевый и двойной серый
⭐ В подарок к комплекту аккумуляторов идет сумка для хранения
⭐ Присутствует китайская сертификация ССС
⭐ Детали: тык
💱Цены:
➖ Емкость 5000 мАч 3550 🪙 (рублей)
➖ Емкость 10000 мАч 6200 🪙 (рублей)
➖ Емкость 10000 мАч + 5000 мАч 8700 🪙 (рублей)
👻Доставка:
🅰️Цена указана С УЧЕТОМ доставки ДО РФ
✉️Обратная связь:
⁉️Вопросы о доставке, оплате и тд.
👀Отзывы
💱Купить:
🅰️@astroknight_bot
🅰️С реальными менеджерами
#ZZZ@astroknightshop
УДЛИНЯЕМЫЙ КАБЕЛЬ ДЛЯ БЫСТРОЙ ЗАРЯДКИ И ПЕРЕДАЧИ ДАННЫХ | ОФИЦИАЛЬНЫЙ МЕРЧ | ZENLESS ZONE ZERO
⚡️Детали:
⭐ Релиз в КОНЦЕ МАЯ 2026
⭐Размер: короткий - 18 см; длинный - 1 м
⭐Питание: Type-C, макс. мощность 240 Вт
⭐ Технические характеристики: Type-C-Type-C; Рабочее напряжение от -5В до 48В; Макс. ток - 5В; Скорость передачи данных - -= 480 Мбит/с
⭐Всего 2 цвета на выбор: оранжевый и черный
⭐ Детали: тык
💱Цены:
➖ Кабель 18 см 1900 🪙 (рублей)
➖ Кабель 1 м 2800 🪙 (рублей)
➖ Кабель 18 см + 1 м 3850 🪙 (рублей)
👻Доставка:
🅰️Цена указана С УЧЕТОМ доставки ДО РФ
✉️Обратная связь:
⁉️Вопросы о доставке, оплате и тд.
👀Отзывы
💱Купить:
🅰️@astroknight_bot
🅰️С реальными менеджерами
#ZZZ@astroknightshop