小编klf*_*wip的帖子

SQLAlchemy 无法查询 json -“Comparator”对象具有属性“as_text”

我正在尝试使用 SQLAlchemy 编写一个查询,该查询使用 JSON 字段进行搜索,如下所示

records = db_session.query(Resource).filter(
              Resources.data["lastname"].astext == "Doe"
          ).all()
Run Code Online (Sandbox Code Playgroud)

所以就我而言,我写道:

records = session.query(Watch).filter(
    Watch.filter_data['session_uuid'].as_text == keys['session_uuid'],
)
Run Code Online (Sandbox Code Playgroud)

这给了我结果AttributeError: Neither 'BinaryExpression' object nor 'Comparator' object has an attribute 'as_text'

我也尝试像这样修改我的代码:

records = session.query(Watch).filter(
    Watch.filter_data.as_text == keys['session_uuid'],
)
Run Code Online (Sandbox Code Playgroud)

AttributeError: Neither 'InstrumentedAttribute' object nor 'Comparator' object associated with Watch.filter_data has an attribute 'as_text'

基本上,我根本无法执行任何 JSON 查询,而且我现在也不知道为什么。我注意到在上面的代码示例中,他们使用Resourceand Resources- 两个单独的对象,但我不知道每个对象的实现是什么样的,所以这对我没有多大帮助。

我使用 Alembic 定义该字段,如下所示:sa.Column('filter_data', sa.JSON(), nullable=False),

我对这一行的映射如下所示:

class Watch(Base):
    __tablename__ = 'watch'
    filter_data = Column(sa.JSON(), …
Run Code Online (Sandbox Code Playgroud)

postgresql json sqlalchemy filter alembic

6
推荐指数
0
解决办法
3560
查看次数

pgadmin4:错误模块'paramiko'没有属性'Ed25519Key'

仅当您尝试使用ssh隧道使用pgadmin连接到数据库时,才会发生这种情况。ubuntu 18.04存储库中的paramiko和pgadmin4的最新版本无法解决此问题。

ubuntu paramiko ssh-tunnel pgadmin

4
推荐指数
1
解决办法
2310
查看次数