我对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']
答案 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()
,然后我相信它应该返回一个元组列表而不是一个字典列表。