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

Пребарај: #lensprotocol

当前筛选 #lensprotocol清除筛选
Venture Village Wall 🦄

@venturevillagewall · Post #3568 · 20.12.2024 г., 09:33

Lens Protocol Secures $31M Funding Lens Protocol has raised $31 million in a funding round on December 18, 2024. The platform is designed as an open social network, granting users ownership of their content and connections, while enabling developers to create applications within the network. #LensProtocol#Funding#SocialNetwork#Blockchain#Crypto#Web3

Venture Village Wall 🦄

@venturevillagewall · Post #3432 · 18.12.2024 г., 14:37

Aave Raises $31M for Lens Protocol Aave protocol developer secures $31M in a strategic funding round for Lens Protocol, spearheaded by Lightspeed Faction. Notable investors include Alchemy Ventures, Circle Ventures, and ConsenSys, among others. #Aave#LensProtocol#Funding#LightspeedFaction#AlchemyVentures#CircleVentures#ConsenSys#DigitalFinanceGroup#FabricVentures#ForesightVentures#Superscrypt#Re7Capital#WintermuteVentures#CaliberVentures#G20Group#BlockchainCoinvestors#BorderlessCapital#BodhiVentures#AlexGluchowski#AleksanderLarsen