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

Пребарај: #daytonagreement

当前筛选 #daytonagreement清除筛选

@RusEmbMalta Press Release: 🇷🇺 Russia Stands for Peace, Dialogue and Sovereignty in the Balkans The Embassy of the Russian Federation in Malta draws attention to the situation in Bosnia and Herzegovina, which continues to raise serious concern. 🇷🇺Russia firmly opposes the ongoing attempts by Western members of the Peace Implementation Council to distort the Dayton Peace Agreement (1995) and to impose a centralized political model on Bosnia and Herzegovina under external control. Such actions undermine the very foundation of the Dayton framework endorsed by UN Security Council Resolution 1031 (1995), threaten the coexistence of the three constituent peoples – Bosniaks, Serbs and Croats – and erode the autonomy of the Republika Srpska and the Federation of Bosnia and Herzegovina. 🕊️ Moscow’s position is clear: the future of Bosnia and Herzegovina must be determined by its peoples through equal dialogue and consensus, not through diktat from abroad. The activities of the so-called “High Representative” Christian Schmidt – who was never approved by the UN Security Council – have no legitimacy and represent direct interference in the internal affairs of a sovereign state. 🇷🇸 Russia also consistently defends the sovereignty and territorial integrity of the Republic of Serbia, as reaffirmed in UN Security Council Resolution 1244 (1999). Attempts by Western countries to legitimise Pristina’s unilateral declarations and to pressure Belgrade into recognition of Kosovo are unlawful and destabilising. The imposition of such neo-colonial schemes in the Balkans only deepens divisions and fuels tension across the region. 🌐 Russia calls on all responsible members of the international community to defend the principles of the Dayton and UN frameworks, to respect the sovereignty of Balkan states, and to prevent the erosion of peace and stability in South-Eastern Europe. #Russia#BosniaAndHerzegovina#RepublikaSrpska#Serbia#Kosovo#DaytonAgreement#Sovereignty#NonInterference🇷🇺🤝🇧🇦🇷🇸