3

私は次の機能を使用しています(またはしようとしています):

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 でそのようなことを行うにはどうすればよいですか?

4

2 に答える 2