Python 将每个带有jsonb_的Postgresql查询转换为sqlalchemy

Python 将每个带有jsonb_的Postgresql查询转换为sqlalchemy,python,postgresql,sqlalchemy,Python,Postgresql,Sqlalchemy,我有一个查询,每个查询有两个jsonb_语句,我需要将其转换为sqlalchemy。 我曾尝试使用子查询、别名,甚至op fn来逐字翻译查询,但由于内部错误而失败 我特别感到困惑的是,我不知道如何访问从每个函数的第一个jsonb_返回的{key:value}对 这就是我目前所拥有的 v=列“值”,类型=JSONB k=列'key',类型=JSONB 极性=v[“极性”]。astext q=db.session.query db.func.countpolarity.label'count', 其

我有一个查询,每个查询有两个jsonb_语句,我需要将其转换为sqlalchemy。 我曾尝试使用子查询、别名,甚至op fn来逐字翻译查询,但由于内部错误而失败

我特别感到困惑的是,我不知道如何访问从每个函数的第一个jsonb_返回的{key:value}对

这就是我目前所拥有的

v=列“值”,类型=JSONB k=列'key',类型=JSONB 极性=v[“极性”]。astext q=db.session.query db.func.countpolarity.label'count', 其他领域 \ 。从MyModel中选择_\ .joindb.func.jsonb_eachMyModel.json_content['myMap'].别名'items',sa.true\ 参加 ... 困在这里 我想在这里访问上一次连接返回的数据 \ 分组方式和订单方式在此处 全部的 询问

-我的桌子 --身份证 --json_内容 选择 countd.value->“极性”作为计数, d、 值->>“极性”作为极性, d、 钥匙作为钥匙 来自MyT表 加入jsonb_eacht.json_content->'myMap'm on true 在true上加入jsonb_eachm.value->“data”-“text”d 按d.值分组->>“极性”,d.键; 我想要得到的结果集

count   polarity    category
----------------------------
1       positive    cate2
1       positive    cate4
2       negative    cate1
1       negative    cate2
我试图查询的示例json对象

{ 我的地图:{ 0: { 数据:{ 文本:Kooled, 类别1:{ 极性:负 }, 类别2:{ 极性:正极 } } }, 1: { 数据:{ 文本:其他一些文本, 类别1:{ 极性:负 }, 类别2:{ 极性:负 }, 类别4:{ 极性:正极 } } } } } 如果需要更多信息,请告诉我,而不是使用列,您可以使用别名,并结合已定义的配方和所示的查询

所以代码应该是这样的:

first_alias = aliased(jsonb_each(MyModel.json_content['myMap'])))
second_alias = aliased(jsonb_each(first_alias.c.value.op("->")("data").op("-")("text")))
polarity = second_alias.c.value.op('->>')('polarity')
q = db.session.query(
    db.func.count(polarity).label('count'),
    ## other fields
)\
.select_from(MyModel)\
.join(first_alias, sa.true())\
.join(second_alias, sa.true())\
# group by and order by here
.all()
jsonb_each函数不是从Sqlalchemy函数导入的。它是按规定定制的