Quart JSON-кодировка - PullRequest
       8

Quart JSON-кодировка

0 голосов
/ 05 июня 2018

как первый раз 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 и позволить quart обрабатывать все остальное?

1 Ответ

0 голосов
/ 05 июня 2018

Предполагая, что вы хотите использовать функцию 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 наизбегайте проблем с искажением имен.

...