gpt4 book ai didi

mysql - 使用 `sqlalchemy.types.JSON` 数据类型通过 SQLAlchemy 查询 JSON

转载 作者:行者123 更新时间:2023-11-29 19:55:38 26 4
gpt4 key购买 nike

我在 SQLAlchemy 中有下表:

class FooModel(Base):
__tablename__ = 'table'
id = sqla.Column('id', INTEGER, primary_key=True)
info = sqla.Column(JSON)

我想执行以下查询:

result = session.query(FooModel).filter(
FooModel.info['key1'].astext.cast(INTEGER) == 1).all()

只要我的表中的 info 列的类型为 sqlalchemy.dialects.postgresql.JSON,上述查询就可以正常工作。但是,如果我使用 sqlalchemy.JSON 中的 JSON ,则会收到以下错误: AttributeError: 'BinaryExpression' 对象和 'Comparator' 对象都没有属性 'astext '

由于上述是最基本的过滤器,这是否意味着为了进行任何类型的查询,您必须使用特定 SQL 方言中的类型?换句话说:是否可以修改上述查询并使其在使用 sqlalchemy.JSON 类型时运行? (这将允许代码在 PostreSQL 和 MySQL 上运行)

最佳答案

也许你可以尝试如下
从 sqlalchemy 导入 JSON
从 sqlalchemy.sql.expression 导入强制转换
结果 = session.query(FooModel).filter(FooModel.info['key1'] == cast(1, JSON).all()

关于mysql - 使用 `sqlalchemy.types.JSON` 数据类型通过 SQLAlchemy 查询 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40713647/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com