小编Teb*_*oto的帖子

如何检查Postgres中是否存在json密钥?

假设我有一个看起来像这样的json:

some_json = {'key_a': {'nested_key': 'a'},
             'key_b': {'nested_key': 'b'}}
Run Code Online (Sandbox Code Playgroud)

请注意,key_a并且key_b是映射到词典的可选键,可能存在也可能不存在.

我有一个函数检查外键是否存在some_json并返回一个布尔值.

CREATE FUNCTION key_exists(some_json json, outer_key text)
RETURNS boolean AS $$
BEGIN
    RETURN (some_json->outer_key IS NULL);
END;
$$ LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

ProgrammingError: operator does not exist: json -> boolean
Run Code Online (Sandbox Code Playgroud)

为什么outer_key等同于布尔值?执行此检查的正确语法是什么?

python postgresql json psycopg2

29
推荐指数
3
解决办法
3万
查看次数

标签 统计

json ×1

postgresql ×1

psycopg2 ×1

python ×1