Python属性类的Json序列化

2024-10-03 06:32:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个属性类:

from child_props import ChildProps

class ParentProps(object):
    """Contains all the attributes for CreateOrderRequest"""

    def __init__(self):
        self.__prop1 = None            
        self.__child_props = ChildProps()            

    @property
    def prop1(self):
        return self.__prop1

    @prop1.setter
    def prop1(self, value):
        self.__prop1 = value

    @property
    def child_props(self):
        return self.__child_props

    @child_props.setter
        def child_props(self, value):
        self.__child_props = value

另一类是:

^{pr2}$

在主.py在

parent_props = ParentProps()
parent_props.prop1 = "Mark"
child_props =  ChildProps()
child_props.child_prop1 = 'foo'
child_props.child_prop2 = 'bar'
parent_props.child_props = child_props

如何将父属性序列化为json字符串,如下所示:

{
    "prop1" : "Mark",
    "child_props" : {
                        "child_prop1" : "foo",
                        "child_prop2" : "bar"
                    }
}    

附言:json.dumps文件只能序列化本机python数据类型。 pickle模块只对字节执行对象序列化。在

就像我们在dotnet中有NewtonSoft,在java中有jackson,在Python中有什么等价的序列化器来序列化getter setter properties类对象。在

我在谷歌搜索了很多,但没有得到太多的帮助。 任何线索都会很可观的。谢谢


Tags: selfchildreturn属性序列化valuedefproperty
1条回答
网友
1楼 · 发布于 2024-10-03 06:32:44

检查一下:

def serializable_attrs(self):
    return (dict(
        (i.replace(self.__class__.__name__, '').lstrip("_"), value)
        for i, value in self.__dict__.items()
    ))

它应该返回一个包含类属性的字典。在

我替换类名是因为__dict__中的属性看起来像:_ChildProps___child_prop1。在

相关问题 更多 >