作为第一次Quart
使用的用户,我很难定义 json 编码器/解码器。我有这样的嵌套对象:
class ObjA:
def __init__(self, name, color):
self.name = name
self.__color = color
class Color:
def __init__(self, t):
self.t = t
是否可以为每个类定义编码器/解码器并让 quart 处理其余部分?
假设您想使用该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
以避免名称修改问题。