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

Резултати

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

Пребарај: #parametricarchitecture

当前筛选 #parametricarchitecture清除筛选

Completed in 2018, The Fuzhou Strait Culture and Art Center by PES-Architects takes inspiration from the petals of a jasmine blossom, the city flower of Fuzhou. The flower is manifested in the formal language, and the color of the architecture takes inspiration from the petals of a jasmine blossom, the city flower of Fuzhou. “Dividing the large complex into smaller units gives the Centre a more human scale and makes it easy for users to navigate indoors and outdoors. Each building has a core area — a semi-public, curved gallery that follows the curvature of the main façade — that integrates the public interior space with the landscape of the Jasmine Gardens around the building and further with the Mahangzhou island nature reserve in front of the Centre.” Says Pekka Salminen, Founder of PES-Architects. 📸 Photographs: Marc Goodwin, Yong Zhang, Martin Lukasczyk #parametricarchitecture#arch_shovel#archdaily

Temporary outdoor theater dubbed ‘lantern’ designed by architects Olivier Ottevaere and Donn Holohan. #installation#bamboodesign#bamboopavilion#pavillion#parametricarchitecture#parametricdesign#bamboobuilding#theater#arch_shovel