如何从python中的对象创建正确的JSON?

问题描述 投票:0回答:1

我创建了一个对象,看起来像这样:

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}]

您能帮我吗,我该怎么做呢?预先感谢您的帮助!

python json
1个回答
0
投票

您可以使用indent和sort_keys值:

© www.soinside.com 2019 - 2024. All rights reserved.