Каков наиболее экономичный способ преобразования вложенных объектов Python в словари?

У меня есть несколько объектов SQLAlchemy, которые содержат списки большего количества объектов SQLAlchemy и так далее (примерно для 5 уровней). Я хочу преобразовать все объекты в словари.

Я могу преобразовать объект в словарь с помощью свойства __dict__, без проблем. Тем не менее, у меня возникли проблемы с поиском наилучшего способа преобразования всех вложенных объектов, без необходимости делать каждый уровень явно.

Пока что это лучшее, что я могу придумать, но оно не повторяется должным образом. Он в основном ломается после одного прохода, так что с моей логикой явно что-то не так. Вы видите, что с этим не так??

Я надеюсь сделать:

all_dict = myDict(obj.__dict__)

def myDict(d):
    for k,v in d.items():
        if isinstance(v,list):
            d[k] = [myDict(i.__dict__) for i in v]
        else:
            d[k] = v
    return d
5
задан MFB 1 November 2011 в 14:14
поделиться