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

Резултати

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

Пребарај: #hackathon2025

当前筛选 #hackathon2025清除筛选

“Yangi O‘zbekiston” universiteti talabasi — xalqaro “Quantum & AI Hackathon 2025” g‘olibi! #NewUUStudentSuccess 🌐 Dasturiy muhandislik yo‘nalishi 4-kurs talabasi Fyodor Amanov hozirda Janubiy Koreyaning Sejong universitetida (dunyo reytingida TOP 250) almashinuv dasturi asosida tahsil olmoqda. 💡 Fyodor jamoasi bilan birgalikda QAI Ventures Quantum & AI Hackathon 2025 (Singapur) xalqaro tanlovida ishtirok etib, 1-o‘rinni qo‘lga kiritdi! 💻 Ular Microsoft va Deutsche Bank Singapore homiyligidagi “Risk Management Challenge” yo‘nalishida kvant hisoblash texnologiyasi va sun’iy intellekt asosida portfel riskini boshqarish bo‘yicha innovatsion yechim ishlab chiqishdi. 🌍 Hakaton QAI Ventures (Shveytsariya) tomonidan National University of Singapore (NUS), Nanyang Technological University, Microsoft, DBS Bank kabi yirik tashkilotlar hamkorligida tashkil etilgan bo‘lib, moliya va texnologiyalar kesishmasidagi ilg‘or g‘oyalarni ilgari surishga qaratilgan. 🎓 Siz ham texnologiya va innovatsiyalar sohasida chuqur ilm olishni xohlaysizmi? 👉“Yangi O‘zbekiston” universitetining doktorantura dasturlari haqida batafsil: https://newuu.uz/doctorate ⸻ #QuantumAI#Hackathon2025#NewUUstudentSuccess#talabalar#texnologiya#suniyintellekt#kvanttexnologiyasi#innovation#AI#globalyouth ⬇️Biz ijtimoiy tarmoqlarda: Veb-sayt | Telegram | Instagram | Facebook