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 слични објави

Пребарај: #offlab

当前筛选 #offlab清除筛选
Neon Maidens Online: TON Game

@nmotongame · Post #91 · 14.08.2024 г., 12:25

🚀РЕЙД ОКОНЧЕН! 🚀 🎆Поздравляем победителей! 🎆 В первом туре победил:@Fystan_1PTON И забрал: 🔴Cash Up: 500.000 $CASH 🔴Neon Prism: NFT GOLD Neon Maidens 🔴NFT Booli: 1 TON 🔴Froggi: 5$ 🔴Off Lab: 5$ 🔴Passenger: 45.000 $BULL Во втором туре победила:@M4RU666 И выйграла: 👉Neon Prism: NFT GOLD Neon Maidens 👉Cash Up: 500.000 $CASH 👉NFT Booli: 1 TON, NFT Bull Pass 👉Froggi: 5$ 👉Off Lab: 5$ 👉Passenger: 45.000 $BULL 👉Julia Maincard: 15.000 $BULL, 133.000 $CASH 👉Batymchanin : NFT Batymchik #151, $BATYM 100 000 👏Победа в рейде - заслуженное признание усилий и дисциплины, приложенных к достижению поставленной цели. Роман и Мару, вы продемонстрировали настоящую решимость и выдержку, и ваша победа достойна самых громких аплодисментов! Поздравляем вас с этим заслуженным успехом и желаем новых побед и достижений в будущих вызовах. ❤️Подводя итоги рейда, мы выражаем благодарность каждому участнику за активное участие, поддержку и вдохновение. Общение друг с другом - это не просто приятный бонус, а настоящий приз) так что не расходимся и продолжаем наше знакомство. Ура! #TON#AMA#SHILL#CASH#NEONPRISM#BOOLI#FROGGI#OFFLAB AMA Radio⚡️SHILL⚡️Neon Prism⚡️NFT Bull⚡️Frogi⚡️Off Lab