TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #397 · 12 ное.

Использование 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

Резултати

Пронајдени 30 слични објави

Пребарај: #attitude

当前筛选 #attitude清除筛选
Quiet World 🍁

@QuietWorld · Post #7145 · 14.01.2020 г., 00:32

Life is Simple First, Don't bother with other people's lives, no need to comment much, no slander here and there, no need to make fun of it.. Second, Live within your means. Don't torture yourself just to follow trends or impress people. Third, Just enjoy your life and be the best you can be. Be grateful for what you have, and do what you want. Fourth, Don't listen to what people say. Even if that person insults you. Just remember, you didn't ask that person to feed you anyway. Have a blessed day ☺️🌻 #life#gratitude#attitude @quietworld🍃

Quiet World 🍁

@QuietWorld · Post #7052 · 10.12.2019 г., 03:22

sometimes I'm surprised at how I can go back and forth from being like a mature adult around a group of people to being like a childlike adult around another particular group of people 😐 have you ever felt the same way about yourself?👀 #poll#attitude#personality @quietworld🍃

ПретходнаСтраница 1 од 3Следна