作为第一次使用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处理剩下的事情?
发布于 2018-06-06 04:39:41
假设您想使用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,以避免名称损坏问题。
https://stackoverflow.com/questions/50695772
复制相似问题