Использование 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
Инвестиции для начинающих: с чего начать и как не попасться мошенникам?
Полный выпуск — на нашем Youtube канале
В этом выпуске спикер Дмитрий Сочин — эксперт по финансам, трейдер расскажет, с чего стоит начинать инвестору без опыта и как не стать жертвой обмана.
Каждый выпуск #FinPodcast — это практичные советы, свежие идеи и мотивация на пути к финансовой грамотности.
Слушайте, делитесь и становитесь финансово увереннее!
Инвестиции для начинающих: с чего начать и как не попасться мошенникам?
📹Смотрите полный выпуск по ссылке https://youtu.be/eXe-1lEzXB4?si=372Vof1jloHAhV4i
Гость — Дмитрий Сочин, эксперт по финансам и трейдер. Он поделится, как новичку грамотно начать инвестировать и как не стать жертвой обмана.
🎞Каждый #FinPodcast — это полезные рекомендации, новые идеи и вдохновение для развития вашей финансовой грамотности.
Не успели посмотреть предыдущие выпуски? Все они ждут вас на официальном YouTube-канале проекта FinGramota.
➡️Слушайте, делитесь и становитесь финансово увереннее!
Дорогие друзья❤️!
На нашем YouTube-канале Fingramota.kz вас ждут увлекательные подкасты с участием ведущих финансовых экспертов Казахстана. Сегодня вспомним, как правильно урегулировать задолженность по долгам и кредитам.
🎙Своими рекомендациями делится Дмитрий Акмаев, главный специалист проекта FinGramota.
Каждый эпизод #FinPodcast — это практичные советы, новые идеи и полезная информация для вашего финансового благополучия.
➡️Слушайте, делитесь и будьте финансово уверены!
ФИНАНСОВЫЕ ЦЕЛИ И ЗАДАЧИ. ЛИЧНЫЙ И СЕМЕЙНЫЙ БЮДЖЕТ
Полную версию смотрите здесь
Каждый выпуск #FinPodcast — это новые идеи, советы и вдохновение для вашего финансового роста.
‼️Не успели прослушать наши прошлые эпизоды? Все выпуски доступны на официальном YouTube-канале проекта #FinGramota
Делитесь, слушайте и будьте финансово уверены!
ФИНАНСОВАЯ ГРАМОТНОСТЬ И ИНВЕСТИЦИИ ДЛЯ ДЕТЕЙ
Полную версию смотрите здесь
Каждый выпуск #FinPodcast — это новые идеи, советы и вдохновение для вашего финансового роста.
‼️Не успели прослушать наши прошлые эпизоды? Все выпуски доступны на официальном YouTube-канале проекта #FinGramota
Делитесь, слушайте и будьте финансово уверены!
ИНВЕСТИЦИИ: С ЧЕГО НАЧАТЬ НОВИЧКУ И КАК НЕ СТАТЬ ЖЕРТВОЙ МОШЕННИКОВ?
Полную версию смотрите здесь
Каждый выпуск #FinPodcast — это новые идеи, советы и вдохновение для вашего финансового роста.
‼️Не успели прослушать наши прошлые эпизоды? Все выпуски доступны на официальном YouTube-канале проекта #FinGramota
Делитесь, слушайте и будьте финансово уверены!
ФИНАНСОВЫЕ ПЛАНЫ НА НОВЫЙ ГОД
Полную версию смотрите здесь
Каждый выпуск #FinPodcast — это новые идеи, советы и вдохновение для вашего финансового роста.
‼️Не успели прослушать наши прошлые эпизоды? Все выпуски доступны на официальном YouTube-канале проекта #FinGramota
Делитесь, слушайте и будьте финансово уверены!
МФО И КОЛЛЕКТОРЫ: ПРАВА ЗАЕМЩИКОВ И ОБЯЗАННОСТИ СТОРОН
Полную версию смотрите здесь
Каждый выпуск #FinPodcast — это новые идеи, советы и вдохновение для вашего финансового роста.
‼️Не успели прослушать наши прошлые эпизоды? Все выпуски доступны на официальном YouTube-канале проекта #FinGramota
Делитесь, слушайте и будьте финансово уверены!
ЦИФРОВЫЕ ИНФОРМАЦИОННЫЕ РЕСУРСЫ: ФАКТЧЕКИНГ И ВЫБОР ФИНАНСОВОГО ПРОДУКТА
Полную версию смотрите здесь
Каждый выпуск #FinPodcast — это новые идеи, советы и вдохновение для вашего финансового роста.
‼️Не успели прослушать наши прошлые эпизоды? Все выпуски доступны на официальном YouTube-канале проекта #FinGramota
Делитесь, слушайте и будьте финансово уверены!
ФИНАНСОВОЕ МОШЕННИЧЕСТВО: ЦИФРОВЫЕ МЕТОДЫ, ФИШИНГ, ДИПФЕЙКИ, ШИФРОВАНИЕ
Полную версию смотрите здесь
Каждый выпуск #FinPodcast — это новые идеи, советы и вдохновение для вашего финансового роста.
‼️Не успели прослушать наши прошлые эпизоды? Все выпуски доступны на официальном YouTube-канале проекта #FinGramota
Делитесь, слушайте и будьте финансово уверены!
ФИНАНСОВОЕ МОШЕННИЧЕСТВО: КАК НЕ СТАТЬ ЖЕРТВОЙ?
Полную версию смотрите здесь
Каждый выпуск #FinPodcast — это новые идеи, советы и вдохновение для вашего финансового роста.
‼️Не успели прослушать наши прошлые эпизоды? Все выпуски доступны на официальном YouTube-канале проекта #FinGramota
Делитесь, слушайте и будьте финансово уверены!
КАК ПРАВИЛЬНО ВЫБРАТЬ КРЕДИТ И НА ЧТО ОБРАТИТЬ ВНИМАНИЕ
Полную версию смотрите здесь
Каждый выпуск #FinPodcast — это новые идеи, советы и вдохновение для вашего финансового роста.
‼️Не успели прослушать наши прошлые эпизоды? Все выпуски доступны на официальном YouTube-канале проекта #FinGramota
Делитесь, слушайте и будьте финансово уверены!