夸脱 JSON 编码
Quart JSON encoding
作为第一次 Quart
用户,我很难定义 json 编码器/解码器。
我有这样的嵌套对象:
class ObjA:
def __init__(self, name, color):
self.name = name
self.__color = color
class Color:
def __init__(self, t):
self.t = t
是否可以定义 encoder/decoder foreach Class 并让 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
以避免名称混淆问题。
作为第一次 Quart
用户,我很难定义 json 编码器/解码器。
我有这样的嵌套对象:
class ObjA:
def __init__(self, name, color):
self.name = name
self.__color = color
class Color:
def __init__(self, t):
self.t = t
是否可以定义 encoder/decoder foreach Class 并让 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
以避免名称混淆问题。