是否有一种干净的方法可以在python对象的所有属性上调用 dict ?具体来说,当我在我的对象上调用 dict 时,我得到了这个:
{'edges': [<dawg.Edge instance at 0x107aa0200>,
<dawg.Edge instance at 0x10a581a70>,
<dawg.Edge instance at 0x10656a680>]}
但我希望该输出是实例的 dict ()而不是实例描述。
编辑:我想我应该澄清我正在尝试JSON化对象,所以我需要键入(obj ['edges'] [0])作为词典。
答案 0 :(得分:2)
我认为 repr 解决方案会更干净,但您也可以在获取上述字典后添加此行来获得您想要的内容(我称之为d1
)
d2 = {'edges' : map(lambda x: x.getDict(), d1['edges'])}
OR与列表理解而不是地图
d2 = {'edges' : [i.getDict() for i in d1['edges']]}
如果你可以为我描述一下你想要什么,我会尝试实现getDict或在lambda中写更多内容,但我不确定你想要什么。它是所有边缘字段的字典吗?
答案 1 :(得分:0)
您可以为对象提供一个名为expanddicts
的方法,该方法通过为每个相关事物调用x.__dict__
来构建字典。这似乎比尝试使用内置的dict类型和__dict__
属性更好。