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

Резултати

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

Пребарај: #gambie

当前筛选 #gambie清除筛选
RT en français

@RTenfrancais · Post #80396 · 29.04.2026 г., 15:45

ℹ️Une foule de migrants a tenté de prendre d'assaut l'ambassade de #Gambie à #Madrid pour éviter de faire la queue afin d'obtenir la citoyenneté. Cet afflux de migrants a suivi l'adoption d'une loi de régularisation qui permet à des centaines de milliers d'étrangers d'obtenir ce statut, selon le journal The Sun. Les conditions requises incluent une résidence dans le pays pendant plus de cinq mois et un casier judiciaire vierge. RT en français • Osez questionner !

RT France actualités

@rt_fra · Post #40130 · 29.04.2026 г., 15:45

ℹ️Une foule de migrants a tenté de prendre d'assaut l'ambassade de #Gambie à #Madrid pour éviter de faire la queue afin d'obtenir la citoyenneté. Cet afflux de migrants a suivi l'adoption d'une loi de régularisation qui permet à des centaines de milliers d'étrangers d'obtenir ce statut, selon le journal The Sun. Les conditions requises incluent une résidence dans le pays pendant plus de cinq mois et un casier judiciaire vierge. RT en français • Osez questionner !