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

Пребарај: #hafnia

当前筛选 #hafnia清除筛选

🚢Hafnia продаёт 10 танкеров в рамках обновления флота Крупнейший оператор продуктовых танкеров Hafnia подтвердил продажу 10 судов старшего возраста внешним покупателям, продолжая стратегию омоложения флота. По оценкам брокеров, совокупная стоимость пакета превышает $200 млн. В сделку вошли четыре танкера типа LR1 — “Hafnia Shinano” (2008), “Hafnia Seine” (2008), “Hafnia Yangtze” (2009) и “Hafnia Zambesi” (2010), два танкера типа MR — “Hafnia Leo” (2013) и “Hafnia Crux” (2012), а также четыре танкера типа Handy - “Hafnia Torres” (2016), “Hafnia Sunda” (2015), “Hafnia Malacca” (2015) и “Hafnia Magellan” (2015). Передача судов новым владельцам ожидается в ближайшее время. Ранее в январе компания уже передала новым собственникам MR “Hafnia Libra” и “Hafnia Phoenix”. Параллельно флот пополнился двухтопливным танкером типа MR - “Ecomar Gironde”, завершившим серию, реализованную в совместном проекте с французской Socatra. Чистая прибыль Hafnia в IV квартале составила $109,7 млн, включая $9,5 млн прибыли от продажи судов; годовой результат приблизился к $340 млн. На конец квартала компания контролировала 114 собственных и 9 зафрахтованных судов в сегментах LR2, LR1, MR и Нandy. Стратегия указывает на активное перераспределение капитала в период сильного рынка: фиксация стоимости по возрастному тоннажу и усиление доли современных, более эффективных судов. 📌Hafnia Limited — международная танкерная компания, основанная в 2014 году, специализируется на перевозке нефтепродуктов. Акции обращаются на биржах Осло и Нью-Йорка; крупнейшим акционером является BW Group. BW Group — частная компания, которая контролируется семьей Сомен-Пао (Sohmen-Pao). В настоящее время председателем совета директоров и главным управляющим холдинга является Андреас Сомен-Пао (Andreas Sohmen-Pao). #ProductTankers#Hafnia#FleetRenewal#SNP#TankerMarket