我有一个属性类:
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
另一个课程是:
class ChildProps(object):
"""Contains all the attributes for CreateOrderRequest"""
def __init__(self):
self.__child_prop1 = None
self.__child_prop2 = None
@property
def child_prop1(self):
return self.__child_prop1
@child_prop1.setter
def child_prop1(self, value):
self.__child_prop1 = value
@property
def child_prop2(self):
return self.__child_prop2
@child_prop2.setter
def child_prop2(self, value):
self.__child_prop2 = value
在main.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
如何将parent_props序列化为json字符串,如下所示:
{
"prop1" : "Mark",
"child_props" : {
"child_prop1" : "foo",
"child_prop2" : "bar"
}
}
PS:json.dumps只能序列化本机python数据类型。 pickle模块只将对象序列化为字节。
就像我们在dotnet中使用NewtonSoft,java中的jackson一样,Python中用于序列化getter setter属性类对象的等效序列化程序。
我在谷歌中已经发生了很多事情,但却得不到多少帮助。 任何领先都会非常明显。谢谢
答案 0 :(得分:1)
检查:
def serializable_attrs(self):
return (dict(
(i.replace(self.__class__.__name__, '').lstrip("_"), value)
for i, value in self.__dict__.items()
))
它应该返回包含类属性的字典。
我替换了类名,因为__dict__
中的属性看起来像:_ChildProps___child_prop1
。