【问题标题】:How to get a list from query in sqlalchemy [duplicate]如何从sqlalchemy中的查询中获取列表[重复]
【发布时间】: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 查询中执行此操作。
  • 货车,我做到了。这并不笨拙,但我想知道是否可以在炼金术中做到这一点。

标签: python sql sqlalchemy


【解决方案1】:

我使用(在 @classmethod 中 - 这就是为什么 cls 实例在这里;我还在类属性中添加了“会话”=)

list(session.query(cls))

准确返回所有 DeclarativeBase 实例的简单列表。

【讨论】:

  • 我认为你的麻烦是因为 group_by 方法。我使用 pythonic 机制来过滤带有 filter() 函数的序列,而不是集成在 SqlAlchemy 中。它不是很有效,但我这样做是因为一些向后兼容的原因。这里似乎是合理的方法。
猜你喜欢
  • 2021-09-27
  • 2022-01-25
  • 2018-12-30
  • 2020-05-06
  • 1970-01-01
  • 1970-01-01
  • 2011-06-04
  • 2022-01-14
  • 1970-01-01
相关资源
最近更新 更多