объект выглядит как ниже
{
"id":1,
"image":"path/to/image",
"employee_data":<sql_alcahmy_object>,
}
снова sql_alcahmy_object как показано ниже
{
"employee_previous":<sql_alchemy_object2>,
"employee_salary":"1$",
}
снова sql_alcahmy_object2 как показано ниже
{"company":"xyz","years":10}
ниже будет использован методизвлечь все данные из объекта sql alchemy
sql_alchemy_object.__dict__
ниже - это запланированный рекурсивный метод, но он не сработал
def extract_recursive(deepvalue,alldata={}):
for eachkey,eachvalue in deepvalue.__dict__.iteritems():
if hasattr(eachvalue,"__dict__"):
alldata.update({eachkey:extract_recursive(eachvalue)})
else:
alldata.update({eachkey:eachvalue})
print(alldata)
ожидаемый результат
{
"id":1,
"image":"path/to/image",
"employee_data":{
"employee_previous":{"company":"xyz","years":10},
"employee_salary":"1$",
}
}
Доступные методы в deepvalue и sql_alcahmy_object, как показано ниже
['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__mapper__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__table__', '__tablename__', '__weakref__', '_decl_class_registry', '_sa_class_manager', 'age']