Python RU
🐍 Совет дня для продвинутых Python-разработчиков
Хочешь писать чище и безопаснее, когда работаешь с вложенными dict? Забудь про dict.get(...).get(...) и используй collections.ChainMap или types.SimpleNamespace — но ещё лучше: pydantic или dotmap.
А вот компактный трюк на каждый день — безопасное извлечение с functools.reduce:
from functools import reduce
def deep_get(dictionary, keys, default=None):
return reduce(lambda d, key: d.get(key, default) if isinstance(d, dict) else default, keys, dictionary)
data = {"user": {"profile": {"email": "[email protected]"}}}
email = deep_get(data, ["user", "profile", "email"])
📌 Почему это полезно:
- Нет KeyError
- Код читаемый
- Масштабируемо для любых уровней вложенности
🔥 Применяй в проектах, где много данных с API или JSON — избавит от лишних try/except и защитит от неожиданных крашей.
Python — это не только про лаконичность, но и про стабильность
❤5
29 · 1.9K ·