jsonb_plpython3u

在 jsonb 和 plpython3u 之间转换

概览

扩展包名版本分类许可证语言
plpython3u1.0LANGPostgreSQLC
ID扩展名BinLibLoadCreateTrustReloc模式
3290plpython3upg_catalog
3291jsonb_plpython3u-
3292ltree_plpython3u-
3293hstore_plpython3u-
相关扩展plpython3u faker jsonb_plperl jsonb_plperlu pg_jsonschema jsquery plpgsql

版本

PG18PG17PG16PG15PG14
1.01.01.01.01.0

安装

提示:这是 PostgreSQL 内核自带的 contrib 扩展

CREATE EXTENSION jsonb_plpython3u;

用法

jsonb_plpython3u: jsonb 与 PL/Python3 之间的类型转换

为 PL/Python3U 提供 jsonb 类型的转换支持。加载后,jsonb 值会自动转换为 Python 字典、列表和标量,反之亦然。

CREATE EXTENSION jsonb_plpython3u;

CREATE FUNCTION jsonb_keys_sorted(val jsonb) RETURNS text[]
LANGUAGE plpython3u TRANSFORM FOR TYPE jsonb AS $$
  # val 现在是一个 Python 字典
  return sorted(val.keys())
$$;

CREATE FUNCTION build_jsonb(name text, age integer) RETURNS jsonb
LANGUAGE plpython3u TRANSFORM FOR TYPE jsonb AS $$
  return {"name": name, "age": age}
$$;

SELECT jsonb_keys_sorted('{"b": 2, "a": 1, "c": 3}'::jsonb);
SELECT build_jsonb('Alice', 30);

最后修改 2026-03-12: update extension pages (f579993)