2012-01-30 8 views
1

私は、SqlAlchemyで整数値のリストを取得しようとしています。 Elementという名前のモデル(およびテーブル)がidという属性を持っているとしましょう。私は、クライアント側の処理をせずにIDの単一のリストを取得する方法を把握しようとしている。..idsのリストを取得する

現在、私のようなものがあります:

mylist = [o.id for o in session.query(Element).all()]

を私が取得することができましたsession.query(Element.id)を使用しているタプルのリストですが、それは[(1,),(2,)]を返し、[1,2,3]を探しています。

答えて

2

それはあなたの出力だ場合、これは、うまくいくかもしれない:

mylist = map(lambda element: element.id[0], session.query(Element).all()) 
+0

をうん、たぶん私が(上記の私のコードと同じ)を探していた結果を与えることがあるかどう..私はただ思ったんだけどSQLAlchemyクエリでそれをネイティブに行うことで*リストを複製せずに*行う方法です。私はジェネレータポストのクエリを使用してリストを反復することができますが、DRY以外のコードを書くことは嫌いです;) –

+2

ここにジェネレータのバージョンがあります:(v [Element.query.values(Element.id)のv [0]) –

+0

@alexvasi:私は 'lambda's:Pで遊んでいるだけですが、この問題は一度もありませんでしたので、なぜSQLAlchemyが協力していないのか分かりません。 – Blender

関連する問題