我如何 return json 在 psycopg2 查询中?

How do I return json in a psycopg2 query?

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

psycopg2.ProgrammingError: could not identify an equality operator for type 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 是 table 中唯一类型为 JSON 的列。我进行了广泛的搜索,但一无所获,也想不出前进的方向。任何建议将不胜感激。

select distinct 要求每一整行都不同。因此,当您说 select DISTINCT me.measure_id, me.choices 时,您要求 postgresql 在 choices 上执行相等操作以查看两行是否相同。

假设 measure_idmeasures 的主键,您可以删除 distinct。否则你可以使用 distinct on 只抓取一行 measure_id.