Reputation: 16385
I am new to Python. Here is my code
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)
But this is not correct json? I want to add all the json objects from the for loop into a proper json array, so the client can loop over it ? How can i do this ?
Upvotes: 1
Views: 1444
Reputation: 473833
You can construct a list of dicts from your query results. Define to_dict
method on your model (taken from here):
class Test(Base):
...
def to_dict(self):
return {c.name: getattr(self, c.name) for c in self.__table__.columns}
Then, make a list of dicts and dump it to json:
users = cess.query(Test).order_by(Test.my_id).distinct().all()
output = [c.to_dict() for c in users]
print json.dumps(output)
Also see:
Upvotes: 1