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

Резултати

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

Пребарај: #fixed

当前筛选 #fixed清除筛选
JS Organization

@jsorganization · Post #1228 · 10.07.2025 г., 06:56

🤖 Bot Downtime Update 🔧 Hey everyone, Our bot is currently down due to a server-side issue from our hosting provider. This outage is not caused by us directly, but we’re in constant contact with the provider to ensure it gets resolved as quickly as possible. We truly understand how frustrating this is — we’re equally affected and doing everything we can behind the scenes to bring the service back online. 🙏 Thanks for your patience and support. We’ll keep you updated here. Please stay tuned. #fixed✈️

Hashtags

APKPure_Official

@apkpurechannel · Post #2516 · 29.06.2025 г., 11:00

🎈Hot Game This Week🎈 #Minecraft 1.21.92 LIVE!! What's New? 🌟1.21.90 bugs #fixed! Resolved a problem where adding split-screen players could disconnect users from multiplayer worlds. 🌟Visual Arts Adjusments! Items with dimensions smaller than 16 pixels in width or height now display correctly once more. 🔗Minecraft 1.21.92 APK Patch Update