python:SQLAlchemy - > DB.query.all()返回列名

时间:2017-06-01 17:47:17

标签: python mysql sqlalchemy

我对SQLAlchemy有一个小问题,我无法解决。截至目前,每当我运行DB.query.all()之类的查询时,我都会得到如下结果:

{'columnName': u'value1'}, 
{'columnName': u'value2'}, 
{'columnName': u'value3'}, 
{'columnName': u'value4'}

有问题的DB只包含1列,我在dict内返回其名称。有没有办法让list代替?类似的东西:

{'columnName': [u'value1', u'value2', u'value3', 3u'value4']}

甚至

[u'value1', u'value2', u'value3', 3u'value4']

2 个答案:

答案 0 :(得分:0)

我不确定你从代码中的SQLAlchemy查询中得到的确切结构(它是一个dicts列表吗?)

  

有没有办法改用清单?

您可以使用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']

答案 1 :(得分:0)

您始终可以在结果集上使用列表推导,即[row.get('columnName') for row in DB.query.all()]

另一种选择是你明确过滤字段,即DB.query(DB.columnName).all(),然后我相信它应该返回一个元组列表而不是一个字典列表。