Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在psycopg2查询中返回json?_Python_Json_Postgresql 9.2_Psycopg2 - Fatal编程技术网

Python 如何在psycopg2查询中返回json?

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

我正在使用psycopg2(版本2.5.4)查询PostgreSQL数据库(版本9.2.7)。我查询的列之一是一个json类型,psycopg2被记录为能够处理该类型。但是,我收到以下错误:

psycopg2.ProgrammingError:无法识别json类型的相等运算符

我没有对相关列执行任何相等操作,只是用select语句返回它。查询很简单,而且相当直截了当:

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的编程错误。因此,每当您看到编程错误时,您都可以推断出错误是在数据库中产生的,而不是在程序代码中。在我看来,这个名字有点让人困惑。