Python对象转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,所以还不太懂那些复杂的语法。
相关问题:
- 暂无相关问题
2 个回答
0
你可以把sqlalchemy的对象放进marshmallow的模式里,并且在这个模式中定义它的属性,这样做没有问题。
1
obj 必须是一个字典,这样才能用字符串作为索引。
所以 obj 应该像这样:
obj = {
'won':self.won,
'gameOver':self.gameOver,
...
}