Python Как преобразовать сложные вложенные классы в словарьPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python Как преобразовать сложные вложенные классы в словарь

Сообщение Anonymous »

У меня есть пара классов, созданные базовыми типами, такими как STR, Int, Float, List, DICT, но также и другие классы, которые содержат аналогичные типы. По сути, у меня вложенные слои объектов. Он преобразуется таким образом, поэтому данные могут быть представлены как объекты и манипулировать позже. После того, как вся обработка будет выполнена, я хочу экспортировать данные в словарь, чтобы их можно было хранить как объект JSON в базе данных. Это обычное дело? Есть ли библиотеки, которые помогают вам сделать это. Я волнуюсь, что получу переполнение стека от рекурсии, которую я буду использовать для < /p>
def getObjectAsDict(self):
d = {}

for name_of_attr in dir(some_class):
if name_of_attr.startswith("_"):
continue

value_of_attr = getattr(some_class, name_of_attr)

if isinstance(value_of_attr, str):
pass
elif isinstance(value_of_attr, int):
pass
elif isinstance(value_of_attr, float):
pass
elif isinstance(value_of_attr, bool):
pass
elif isinstance(value_of_attr, list):
for idx, item in enumerate(value_of_attr):
# some recursion logic here
elif isinstance(value_of_attr, dict):
for key, value in value_of_attr.items():
# some recursion logic here
elif isinstance(value_of_attr, ComplexObject):
value_of_attr = value_of_attr.getObjectAsDict()
# some recursion logic here
else:
continue
d[name_of_attr] = value_of_attr


Подробнее здесь: https://stackoverflow.com/questions/794 ... dictionary
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»