json.dumps将对象作为字符串而不是作为json

时间:2020-10-02 10:49:21

标签: python json flask

我有一个类和一个将类对象更改为json的函数:

    class AuthorizedUser:
    def __init__(self, authorized, comsi, given_name, access_role):
        self.authorized = authorized
        self.comsi = comsi
        self.given_name = given_name
        self.access_role = access_role

    def to_json(self):
        return json.dumps(self, default=lambda o: o.__dict__)

我还有一个可以工作的json:

authorized_user_json = {
        'authorized': authorized_user.authorized,
        'comsi': authorized_user.comsi,
        'given_name': authorized_user.given_name,
        'access_role': authorized_user.access_role
    }

结果:

{'authorized': True, 'comsi': None, 'given_name': None, 'access_role': 'standard_user'}

但是当我使用时:

authorized_user_json_ss = authorized_user.to_json()

结果是:

<SecureCookieSession {'current_user': '{"authorized": true, "comsi": null, "given_name": null, "access_role": "standard_user"}'}>

使用to_json()函数时,为什么还要用引号引起来?

1 个答案:

答案 0 :(得分:1)

JSON是非结构化数据的文本表示形式,它使将数据从一种语言传递到另一种语言变得更加容易。

在Python中,JSON只是存储在文本中的字典。

这是 JSON,它是python DICT:

authorized_user_json = {
        'authorized': authorized_user.authorized,
        'comsi': authorized_user.comsi,
        'given_name': authorized_user.given_name,
        'access_role': authorized_user.access_role
    }