首页 > 解决方案 > Python对象到JSON,但只有选定的属性

问题描述

我正在尝试将我的对象从 JSON 转换为 JSON。此对象使用 SQL Alchemy,因此使用json.dumps(vars(self))不起作用。我正在寻找使这成为可能的语法。

    def to_json(self):
        obj = {
            self.won,
            self.gameOver,
            self.allowMultiColor,
            self.pattern,
            self.board,
            self.round,
            self.totalRounds
        }

        return json.dumps(obj)

然后我想重新定义这样的字段:

    def from_json(self, json_string):
        obj = json.loads(json_string)

        self.won = obj['won']
        self.gameOver = obj['gameOver']
        self.allowMultiColor = obj['allowMultiColor']
        self.pattern = obj['pattern']
        self.board = obj['board']
        self.round = obj['round']
        self.totalRounds = obj['totalRounds']

to_json方法不起作用。当我再次尝试获取它时,我收到了这个错误:TypeError: list indices must be integers or slices, not str

我是 python 新手,所以我还不知道所有花哨的语法

标签: pythonjsonflasksqlalchemy

解决方案


obj 必须是允许使用字符串作为索引的字典。所以 obj 应该是这样的

obj = {
            'won':self.won,
            'gameOver':self.gameOver,
            ...
        }

推荐阅读