Reputation: 737
This is my call: session.query(User.username, User.first_name, User.last_name).all()
It returns: [('myUsername', 'myFirstname', 'myLastname')]
.
I want that to be the following format:[{"username":"myUsername", "first_name":"myFirstname", "last_name":"myLastname"}]
I tried with [dict(zip(["username","first_name","lastname"], x))]
But it returns this: [{'username': ('myUsername', 'myFirstname', 'myLastname')}]
Upvotes: 4
Views: 6986
Reputation: 174728
row = session.query(User.username, User.first_name, User.last_name).all()
as_dict = dict(zip(row.keys(), row))
Upvotes: 7
Reputation: 394419
The thing returned has a single entry containing a tuple, you need to convert that to a list:
In [123]:
[dict(zip(["username","first_name","lastname"], list(temp[0])))]
Out[123]:
[{'first_name': 'myFirstname',
'lastname': 'myLastname',
'username': 'myUsername'}]
In my code example above it just has a single entry, so in the general case you would need to iterate over whatever session.query().all()
returns and populate your dict.
Upvotes: 2