PYTHONL Telegram 4922
This media is not supported in your browser
VIEW IN TELEGRAM
🧠 Как превратить любой Python-объект в читаемый словарь — даже если это класс с кучей вложенных полей

Когда работаешь с API, логами или дебажишь сложные объекты — хочется увидеть весь объект как словарь, без .__dict__, без сериализации, без ручного разбора.

Вот приём, который делает это рекурсивно, красиво и гибко — с помощью dataclasses и asdict, даже если объект не был dataclass изначально.

python 
from dataclasses import dataclass, asdict, is_dataclass
from types import SimpleNamespace

def deep_to_dict(obj):
if isinstance(obj, dict):
return {k: deep_to_dict(v) for k, v in obj.items()}
elif isinstance(obj, list):
return [deep_to_dict(i) for i in obj]
elif is_dataclass(obj):
return asdict(obj)
elif isinstance(obj, SimpleNamespace):
return deep_to_dict(vars(obj))
elif hasattr(obj, '__dict__'):
return deep_to_dict(vars(obj))
else:
return obj


🧠 Рекурсивный разбор любых Python-объектов

📌 Подходит для логирования, сериализации, отладки
📌 Работает с dataclass, обычными классами, объектами из types, JSON-like структурами
📌 Можно расширить: добавить фильтрацию полей, вывод в YAML или сохранение в файл

Теперь любой “монстр из API” — превращается в читаемый словарь за одну строчку.
👍117🔥4🤩1



tgoop.com/pythonl/4922
Create:
Last Update:

🧠 Как превратить любой Python-объект в читаемый словарь — даже если это класс с кучей вложенных полей

Когда работаешь с API, логами или дебажишь сложные объекты — хочется увидеть весь объект как словарь, без .__dict__, без сериализации, без ручного разбора.

Вот приём, который делает это рекурсивно, красиво и гибко — с помощью dataclasses и asdict, даже если объект не был dataclass изначально.

python 
from dataclasses import dataclass, asdict, is_dataclass
from types import SimpleNamespace

def deep_to_dict(obj):
if isinstance(obj, dict):
return {k: deep_to_dict(v) for k, v in obj.items()}
elif isinstance(obj, list):
return [deep_to_dict(i) for i in obj]
elif is_dataclass(obj):
return asdict(obj)
elif isinstance(obj, SimpleNamespace):
return deep_to_dict(vars(obj))
elif hasattr(obj, '__dict__'):
return deep_to_dict(vars(obj))
else:
return obj


🧠 Рекурсивный разбор любых Python-объектов

📌 Подходит для логирования, сериализации, отладки
📌 Работает с dataclass, обычными классами, объектами из types, JSON-like структурами
📌 Можно расширить: добавить фильтрацию полей, вывод в YAML или сохранение в файл

Теперь любой “монстр из API” — превращается в читаемый словарь за одну строчку.

BY Python/ django


Share with your friend now:
tgoop.com/pythonl/4922

View MORE
Open in Telegram


Telegram News

Date: |

While the character limit is 255, try to fit into 200 characters. This way, users will be able to take in your text fast and efficiently. Reveal the essence of your channel and provide contact information. For example, you can add a bot name, link to your pricing plans, etc. For crypto enthusiasts, there was the “gm” app, a self-described “meme app” which only allowed users to greet each other with “gm,” or “good morning,” a common acronym thrown around on Crypto Twitter and Discord. But the gm app was shut down back in September after a hacker reportedly gained access to user data. 3How to create a Telegram channel? Your posting frequency depends on the topic of your channel. If you have a news channel, it’s OK to publish new content every day (or even every hour). For other industries, stick with 2-3 large posts a week. Concise
from us


Telegram Python/ django
FROM American