作为第一次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并让夸脱处理其余的?
答案 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
,以避免名称损坏问题。