使用json列查询时出现此错误:
(psycopg2.ProgrammingError) operator does not exist: json = text
该列通过SQLAlchemy定义为JSON:
json_data = db.Column(db.JSON, nullable=False)
您与Postgres相比如何?
答案 0 :(得分:2)
数据类型json
没有相等(或不相等)运算符。如果您需要整体测试该值,则可以强制转换为 jsonb
:
... WHERE json_data::jsonb = jsonb '{}';
或在简单情况下转换为文本:
... WHERE json_data::text = '{}';
但是对于相同的json
值有许多有效的文本表示形式-这就是Postgres不为该类型实现等式/不等式运算符的原因。
请参阅: