SQLAlchemy - Postgres:使用with_entities查询JSON元素

时间:2016-07-27 18:31:34

标签: python json postgresql sqlalchemy

我正在尝试查询JSON列中的字段(Postgres):

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吗?会有什么工作? 感谢。

1 个答案:

答案 0 :(得分:0)

添加label()方法解决了我的问题:

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