我是Python新手。这是我的代码
class Test(Base):
__tablename__ = 'test'
__public__ = ('my_id', 'name')
my_id = Column(Integer, primary_key=True)
name = Column(String)
def __init__(self, id, name):
self.my_id = id
self.name = name
def __repr__(self):
return "<User('%d','%s')>" % (self.id, self.name)
@property
def json(self):
return to_json(self, self.__class__)
output=[]
users= cess.query(Test).order_by(Test.my_id).distinct().all()
for c in users:
output.append(c.json)
print json.dumps(output)
但这不是正确的json?我想将for循环中的所有json对象添加到正确的json数组中,以便客户端可以循环它吗?我怎样才能做到这一点 ?
答案 0 :(得分:1)
您可以从查询结果中构建一个dicts列表。在模型上定义to_dict
方法(取自here):
class Test(Base):
...
def to_dict(self):
return {c.name: getattr(self, c.name) for c in self.__table__.columns}
然后,制作一个dicts列表并将其转储到json:
users = cess.query(Test).order_by(Test.my_id).distinct().all()
output = [c.to_dict() for c in users]
print json.dumps(output)
另见: