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

Пребарај: #psrw

当前筛选 #psrw清除筛选

Укрепляю базу: сделал пару покупочек 🛒📈 #ETF на мировую экономику Решил немного расширить широкую позицию по рынку. Да, есть опасения по поводу конфликтов, да, есть ещё куча иных обстоятельств, но я хочу верить, что с миром ничего не станет, поэтому считаю небольшое довложение разумным. Но с оговорками: в этот раз с меньшим участием Дяди Сэма. Обойдёмся без классических #MSCI World, а то они чрезмерно любят американские активы. 🔹#GERD— L&G Gerd Kommer Multifactor — Индекс использует хитрое взвешивание активов: 50% по рыночной капитализации и 50% по ВВП страны. Это снижает доминацию компаний из США с их огромными показателями «перекупленности». Охват: Более 4000 акций, включая малую капитализацию (Small Caps) и развивающиеся рынки (Emerging Markets). 🔹#PSRW— Invesco FTSE RAFI All-World 3000 — Индекс, где активы взвешены на основе выручки, кэш-флоу, дивидендов и балансовой стоимости. Такой подход исключает переоцененные «акции роста», преобладающие на рынке США, и естественным образом балансирует портфель в сторону стоимостных активов Европы и Азии. Охват: 3000 акций со всего мира, включая развивающиеся рынки. #Облигации Исходя из последнего отчёта, они сильно отклоняются от моей целевой аллокации, поэтому решил добавить пару фондов. Все они «распределяющие» (Dist), что подразумевает стабильный кэш-флоу. В условиях грядущей нестабильности, которую я продолжаю ждать по уже не раз описанным причинам, это даст возможность докупать подешевевшие активы на живые деньги. 🔹#VAGE— Vanguard Global Agg Bond (EUR Hedged) — Фонд аккумулирует более 11 000 выпусков облигаций (государственных и корпоративных), по сути охватывая весь «серьезны» мировой долговой рынок. Он хеджирован под евро: это должно спасти от курсовых колебаний, если доллар будет дальше валиться или если Европа выйдет победителем из кризиса и наша общая валюта начнёт укрепляться. Бонус — фонд платит дивиденды ежемесячно 💶 🔹#IEAC— iShares Core EUR Corporate — Долги крупных компаний инвестиционного рейтинга в EUR. Предлагают доходность чуть выше государственных бумаг при сохранении высокого кредитного качества. Внутри — более 4 000 выпусков корпоративных облигаций ультра-класса развитых экономик. Обычно в послесловие задаю какой-то вопрос, на который редко кто отвечает. Честно, я напоминаю сам себе дятла, так что в этот раз без него 😎