我正在使用(或尝试)以下功能:
CREATE FUNCTION replace_value(data JSON, key text, value anyelement)
RETURNS JSON AS $$
import json
d = json.loads(data)
d[key] = value
return json.dumps(d)
$$ LANGUAGE plpython3u;
正如我没想到的那样,这不起作用。Postgres 抱怨:
ERROR: PL/Python functions cannot accept type anyelement
嗯......这很愚蠢,因为本机 Python 函数可以接受任何类型的任何内容,因为变量只是事物的名称。
在这种情况下,我不在乎值的实际类型是什么,我只想能够替换它。我怎样才能在 Postgres/PLPython 中做这样的事情?