python:SQLAlchemy->;DB.query.all()返回列名
我有一个关于SQLAlchemy的小问题,我无法解决。到目前为止,每次运行诸如python:SQLAlchemy->;DB.query.all()返回列名,python,mysql,sqlalchemy,Python,Mysql,Sqlalchemy,我有一个关于SQLAlchemy的小问题,我无法解决。到目前为止,每次运行诸如DB.query.all()之类的查询时,我都会得到如下结果: {'columnName': u'value1'}, {'columnName': u'value2'}, {'columnName': u'value3'}, {'columnName': u'value4'} 所讨论的DB只包含一列,我在dict中返回了它的名称。有没有办法用列表来代替?比如: {'columnName':[u'value1',
DB.query.all()
之类的查询时,我都会得到如下结果:
{'columnName': u'value1'},
{'columnName': u'value2'},
{'columnName': u'value3'},
{'columnName': u'value4'}
所讨论的DB
只包含一列,我在dict
中返回了它的名称。有没有办法用列表来代替?比如:
{'columnName':[u'value1',u'value2',u'value3',3u'value4']}
甚至
[u'value1',u'value2',u'value3',3u'value4']
?我不确定从代码中的SQLAlchemy查询返回的内容的确切结构(它是DICT列表吗?)
有没有办法换成一份清单
使用Python列表,您可以非常轻松地提取所需的字段:
>>> rows = [{'columnName': u'value1'},
{'columnName': u'value2'},
{'columnName': u'value3'},
{'columnName': u'value4'}]
>>> [row['columnName'] for row in rows]
[u'value1', u'value2', u'value3', u'value4']
您可以始终对结果集使用列表理解,即对DB.query.all()中的行使用[row.get('columnName')]
另一个选项是显式筛选字段,即DB.query(DB.columnName).all()
,然后我认为它应该返回元组列表,而不是字典列表