Python 无法将SQLAlchemy对象中的所有项转换为字典中的键值

Python 无法将SQLAlchemy对象中的所有项转换为字典中的键值,python,sqlalchemy,flask-sqlalchemy,Python,Sqlalchemy,Flask Sqlalchemy,我试图将SQLAlchemy结果对象中的每一行转换为一个字典,其中每个列标题都是一个键。不过,并不是我查询中的所有列都返回到字典中。“项目”表中的任何列都不可见 在我的for循环中是否需要额外的步骤来解压缩这些列及其值 projects_for_template = ( db.session.query(Project, func.count(Entry.id).label('entry_count')) .join(Entry, Project.name == Entr

我试图将SQLAlchemy结果对象中的每一行转换为一个字典,其中每个列标题都是一个键。不过,并不是我查询中的所有列都返回到字典中。“项目”表中的任何列都不可见

在我的for循环中是否需要额外的步骤来解压缩这些列及其值

projects_for_template = (
      db.session.query(Project, func.count(Entry.id).label('entry_count'))
      .join(Entry, Project.name == Entry.project)
      .group_by(Project)
)

projects_for_template_list = []

for row in projects_for_template.all():
        row_dict = row._asdict()
        projects_for_template_list.append(row_dict)

print (projects_for_template_list)

[{'entry_count': 45L, 'Project': <Project 1>}, {'entry_count': 3L, 'Project': <Project 2>}, {'entry_count': 62L, 'Project': <Project 3>}]

因为您请求的是整个
项目
对象,而不是
项目

projects_for_template = (
      db.session.query(Project.id,Project.client_name,func.count(Entry.id).label('entry_count'))
      .join(Entry, Project.name == Entry.project)
      .group_by(Project.id,Project.client_name) # add all the fields here
)

您还可以迭代结果集并转换项目对象,通过更改sql来获取键值

projects_for_template = (
      db.session.query(Project.id,Project.client_name,func.count(Entry.id).label('entry_count'))
      .join(Entry, Project.name == Entry.project)
      .group_by(Project.id,Project.client_name) # add all the fields here
)