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

Пребарај: #omniconnect

当前筛选 #omniconnect清除筛选
TON Crypto News

@toncoin_rap · Post #179 · 27.09.2024 г., 13:50

🎧⤴ ✈️Telegram’s Billion Users Set to Enter Web3 with Bitget’s OmniConnect – Game-Changer for Blockchain Integration Bitget Wallet has launched OmniConnect, an SDK that allows Telegram’s Mini-Apps to interact with 500+ blockchains, including Solana, TON, and EVM-compatible networks. ► Full News (Expand) Chorus: Bitget’s the key, unlocking the gate, Telegram flows, Web3’s our fate. From Solana to EVM, we transcend, Blockchain’s the wave, no need to pretend. Verse 1: OmniConnect dropped, it’s a brand new day, Telegram’s Mini-Apps leading the way. A billion strong, ready to dive, In this Web3 world, we’re coming alive. No more limits, chains unite, Solana, TON, now feeling the hype. Transactions smooth, signatures signed, Blockchain’s the future, leave doubt behind. Chorus: Bitget’s the key, unlocking the gate, Telegram flows, Web3’s our fate. From Solana to EVM, we transcend, Blockchain’s the wave, no need to pretend. Verse 2: Dev tools stacked, the future’s bright, Mini-Apps thrive, in multichain flight. From gasless trades, to bots that scale, Bitget’s moves, you know they won’t fail. August came, with millions onboard, Global downloads, breaking the cord. Secure logins, Google and Mail, This is the story, we’re here to prevail. Chorus: Bitget’s the key, unlocking the gate, Telegram flows, Web3’s our fate. From Solana to EVM, we transcend, Blockchain’s the wave, no need to pretend. Verse 3: Trading in wallets, social connect, No gas fees now, what you expect? The ecosystem’s growing, feel the rise, Web3’s here, open your eyes. Devs are building, ready to soar, Bitget’s tools open the door. From DeFi to games, there’s no divide, With OmniConnect, it’s a global ride. Chorus: Bitget’s the key, unlocking the gate, Telegram flows, Web3’s our fate. From Solana to EVM, we transcend, Blockchain’s the wave, no need to pretend. Bridge: We’re bridging the chains, we’re crossing the lines, Telegram’s power in these modern times. A billion users, ready to fly, Web3’s calling, the limit’s the sky. #Web3Adoption#OmniConnect#BitgetWallet #TONCryptoNewsRapStyle 🎧@toncoin_rap