我有一些包含多个SQLAlchemy对象列表的SQLAlchemy对象,以此类推(大约5层)。 我希望将所有对象转换为字典。
我可以使用__dict__属性将对象转换为字典,没有问题。 但是,我无法找到将所有嵌套对象转换为字典的最佳方法,而不必明确执行每个级别。
到目前为止,这是我能想到的最好方法,但它不能正确递归。 它基本上在一次传递后就会中断,因此我的逻辑显然出了问题。 你能看出问题出在哪里吗?
我希望能够实现:
我可以使用__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
__dict__
属性时,您还将包括来自基类的所有方法和内容。 - Björn Pollex