Quart JSON编码

时间:2018-06-05 08:39:47

标签: python quart

作为第一次Quart用户,我很难定义json编码器/解码器。 我有这样的嵌套对象:

class ObjA:
    def __init__(self, name, color):
        self.name = name
        self.__color = color

class Color:
    def __init__(self, t):
        self.t = t

是否可以定义编码器/解码器foreach Class并让夸脱处理其余的?

1 个答案:

答案 0 :(得分:0)

假设您要使用jsonify函数,可以通过定义自定义JSONEncoder来实现此目的,

from quart.json import JSONEncoder

class CustomJSONEncoder(JSONEncoder):

    def default(self, obj):
        if isinstance(obj, Color):
            return obj.t
        elif isinstance(obj, ObjA):
            return {
                'name': obj.name,
                '_color': self.default(obj._color),
            }
        else:
            return JSONEncoder.default(self, obj)

app = Quart(__name__)
app.json_encoder = CustomJSONEncoder

注意我已将__color变量更改为_color,以避免名称损坏问题。