Python 如何在sqlalchemy表达式语言中使用jsonb与select表达式中的整数进行比较?

Python 如何在sqlalchemy表达式语言中使用jsonb与select表达式中的整数进行比较?,python,postgresql,sqlalchemy,Python,Postgresql,Sqlalchemy,如何使用sqlalchemy核心表达式语言访问jsonb字典值?例如: s1 = select([issues.c.id, issues.c.data['product_id'], products.c.name.label('product_name') ]). \ where(issues.c.id == issue_id). \ select_from(issues. outerjoin

如何使用sqlalchemy核心表达式语言访问jsonb字典值?例如:

 s1 = select([issues.c.id,
             issues.c.data['product_id'],
             products.c.name.label('product_name')
             ]). \
    where(issues.c.id == issue_id). \
    select_from(issues.
    outerjoin(products,
    (issues.c.data['product_id']).cast(Integer) == (products.c.id)))
问题表中存储的数据如下:

id    | data------+
5247  | {"priority": "M", "product_id": "1"}

如何确切地使用此表达式连接表。上面给出的错误为:
sqlalchemy.exc.ProgrammingError:(psycopg2.errors.UndefinedFunction)运算符不存在:jsonb=integer

在转换为integer之前添加astext得到它:

s1 = select([issues.c.id,
             issues.c.data['product_id'],
             products.c.name.label('product_name')
             ]). \
    where(issues.c.id == issue_id). \
    select_from(issues.
    outerjoin(products,
    (issues.c.data['product_id']).astext.cast(Integer) == (products.c.id)))