如何从sqlalchemy中的查询中获取列表[重复]
Posted
技术标签:
【中文标题】如何从sqlalchemy中的查询中获取列表[重复]【英文标题】:How to get a list from query in sqlalchemy [duplicate] 【发布时间】:2013-12-27 22:29:52 【问题描述】:当我使用 sqlalchemy 在 python 中执行以下操作时
someVar = self.session.query(sometable.someVar).group_by(sometable.someVar).all()
我得到一个变量元组的列表,例如
[(var1,), (var2,), ..]
有没有办法在 sqlalchemy 中获取平面列表。 我知道如何在 python 代码中展平元组列表,但该解决方案有点笨拙。 我只是想知道这是否可能。 我的目标是从 sometable 中获取不同条目 someVar 的列表。
【问题讨论】:
跟随扁平化笨拙如何?someVarFlat = [var[0] for var in someVar]
?不,没有办法直接在 sqlalchemy 查询中执行此操作。
货车,我做到了。这并不笨拙,但我想知道是否可以在炼金术中做到这一点。
【参考方案1】:
我使用(在 @classmethod 中 - 这就是为什么 cls 实例在这里;我还在类属性中添加了“会话”=)
list(session.query(cls))
准确返回所有 DeclarativeBase 实例的简单列表。
【讨论】:
我认为你的麻烦是因为 group_by 方法。我使用 pythonic 机制来过滤带有 filter() 函数的序列,而不是集成在 SqlAlchemy 中。它不是很有效,但我这样做是因为一些向后兼容的原因。这里似乎是合理的方法。以上是关于如何从sqlalchemy中的查询中获取列表[重复]的主要内容,如果未能解决你的问题,请参考以下文章
从列表中过滤为查询字符串 postgresql flask sqlalchemy [重复]