sqlalchemy - query.all() - dict的元组列表

时间:2014-03-12 12:02:00

标签: python dictionary sqlalchemy

这是我的电话:session.query(User.username, User.first_name, User.last_name).all()

返回:[('myUsername', 'myFirstname', 'myLastname')]

我希望它是以下格式:
[{"username":"myUsername", "first_name":"myFirstname", "last_name":"myLastname"}]

我尝试了[dict(zip(["username","first_name","lastname"], x))]
但它会返回:[{'username': ('myUsername', 'myFirstname', 'myLastname')}]

2 个答案:

答案 0 :(得分:4)

row = session.query(User.username, User.first_name, User.last_name).all()
as_dict = dict(zip(row.keys(), row))

答案 1 :(得分:2)

返回的东西有一个包含元组的条目,你需要将它转换为一个列表:

In [123]:
[dict(zip(["username","first_name","lastname"], list(temp[0])))]

Out[123]:
[{'first_name': 'myFirstname',
  'lastname': 'myLastname',
  'username': 'myUsername'}]

在上面的代码示例中,它只有一个条目,因此在一般情况下,您需要迭代任何session.query().all()返回并填充您的字典。