我创建了一个对象,看起来像这样:
class Rectangle:
def __init__(self, ymin, xmin, ymax, xmax):
self.y_min = ymin
self.x_min = xmin
self.y_max = ymax
self.x_max = xmax
def tojson(self):
return json.dumps(self, default=lambda o: o.__dict__,
sort_keys=False, indent=4)
我有一个更复杂的对象,但足以解释。如果创建一个新的Rectangle并调用json(),则会以所需的格式获取该对象。
rect1 = Rect(1,2,3,4)
print(rect.tojson())
result:
{
"y_min": 1,
"x_min": 2,
"y_max": 3,
"x_max": 4
}
但是如果我有Rectangle列表,并且想创建一个JSON,则将它们放在一行中。
rects = [rect1, rect2]
print(json.dumps(rects, default = lambda x: x.__dict__))
result:
[{"y_min": 1, "x_min": 2, "y_max": 3, "x_max": 4}, {"y_min": 1, "x_min": 2, "y_max": 3, "x_max": 4}]
您能帮我吗,我该怎么做呢?预先感谢您的帮助!
您可以使用indent和sort_keys值: