2016-07-27 11 views
0

を照会するためwith_entitiesを使用して:SQLAlchemyの - のPostgres:私はJSONカラム(Postgresの)内のフィールドを照会しようとしていますJSON要素

class MyTable(Base): 
    __tablename__ = 'my_table' 

    data = Column(JSONB) 

問合せ:

my_query = session.query(MyTable).limit(10).with_entities(MyTable.data['rule']).all() 

私はエラーを取得していないが、結果は空です。

私はastextと試みる場合であっても、同じ空の結果:

my_query = session.query(MyTable).limit(10).with_entities(MyTable.data['rule'].astext).all() 

が、私はこのケースでwith_entitiesを使用することはできますか?何が回避策ですか?おかげさまで

+0

は '[「ルール」]'の部分は結果に、ないwith_entitiesフィールドにすべきではありませんか? –

+0

@Paul Becotte:そうは思わない。そうしないと、クエリからJSONフィールドにアクセスする目的がすべて失われます。 – jazzblue

+0

それは私のために働く。おそらくあなたのテーブルには行がありません。( ' ? – univerio

答えて

0

label()方法の追加は、私のために問題を解く:

my_query = session.query(MyTable).limit(10). \ 
     with_entities(MyTable.data['rule'].label('rule')).all() 
関連する問題