将对象编码为没有嵌入对象的dict

时间:2018-02-02 19:27:41

标签: python python-3.x dictionary

我有一个对象(objectname),我正在尝试使用objectname获取dict表示。 _ _ dict _ _

对象中嵌入了另一个对象,因此我得到一个“无法编码对象错误” - 这是有道理的

我不希望这个嵌入对象出现在编码的dict中,因为它与该输出无关,但我确实希望将它保留在被编码的对象中,因为它在对象的整个生命周期中都有用。

有没有一种好方法可以在不删除子对象的情况下执行此操作?

1 个答案:

答案 0 :(得分:0)

class MyClass(object):
    def encode(self):
        # this is called a dict comprehension
        return {k: v for k, v in self.__dict__.items()
                if k != 'thing'}

o = MyClass()
o.x = 1
o.y = 2
o.thing = object()

print(o.encode())  # {'x': 1, 'y': 2}