AndroidDev
AndroidDev

Reputation: 16385

Add JSONObject to a JSON Array

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

Answers (1)

alecxe
alecxe

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

Related Questions