[英]how to use jsonb in sqlalchemy expression language to compare with integer in select expression?
如何使用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) operator does not exist: jsonb = 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)))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.