根据sqlalchemy中的列名称列表进行选择

时间:2018-06-22 20:44:06

标签: python sqlalchemy

给出列名列表,例如:

cols = ['a', 'b', 'c']

我想建立一个相当于以下内容的sqlalchemy ORM查询:

q = db.query(Foo.a, Foo.b, Foo.c)

我当然可以使用查询:

q = db.query(Foo)

...,将每个结果行转换为dict,并使用上方的列名列表作为键值从中提取值。我不愿意这样做,因为我只需要一个大表中的几列,并且希望避免开销。

1 个答案:

答案 0 :(得分:0)

总是有同样的故事:几分钟后,我的大脑被绞尽脑汁,放弃了,问了一个问题,并找到了解决方案:

colspec = [ Foo.__dict__[k] for k in cols ]
q = db.query(*colspec)