Python 如何在psycopg2查询中返回json?
我正在使用psycopg2(版本2.5.4)查询PostgreSQL数据库(版本9.2.7)。我查询的列之一是一个json类型,psycopg2被记录为能够处理该类型。但是,我收到以下错误: psycopg2.ProgrammingError:无法识别json类型的相等运算符 我没有对相关列执行任何相等操作,只是用select语句返回它。查询很简单,而且相当直截了当:Python 如何在psycopg2查询中返回json?,python,json,postgresql-9.2,psycopg2,Python,Json,Postgresql 9.2,Psycopg2,我正在使用psycopg2(版本2.5.4)查询PostgreSQL数据库(版本9.2.7)。我查询的列之一是一个json类型,psycopg2被记录为能够处理该类型。但是,我收到以下错误: psycopg2.ProgrammingError:无法识别json类型的相等运算符 我没有对相关列执行任何相等操作,只是用select语句返回它。查询很简单,而且相当直截了当: SELECT DISTINCT me.measure_id, me.choices FROM measures ME W
SELECT DISTINCT me.measure_id, me.choices
FROM measures ME
WHERE TRUE AND me.measure_id IN (3)
ORDER BY me.measure_id;
me.choices是表中JSON类型的唯一列。我搜索了很多遍,什么也没找到,也想不出前进的方向。任何建议都将不胜感激。
选择不同的
要求每一整行都是不同的。因此,当您说select DISTINCT me.measure\u id,me.choices
时,您要求postgresql对choices
执行相等操作,以查看两行是否相同
假设
measure\u id
是measures
的主键,您可以删除distinct
。否则,您可以使用为度量值\u id
获取一行,如果您将me.choices
替换为me.choices::text
?@alecxe,它是否会引发错误,该用例适用。谢谢,谢谢。你的建议奏效了。我一直在我的python代码中寻找某个地方,在那里我做了一个相等操作,但这对我来说没有任何意义。不知怎的,我刚才才注意到这个评论。作为将来的参考,当postgres返回错误时,将抛出psycopg2的编程错误。因此,每当您看到编程错误时,您都可以推断出错误是在数据库中产生的,而不是在程序代码中。在我看来,这个名字有点让人困惑。