jsonb_plpython3u

transform between jsonb and plpython3u

Overview

PackageVersionCategoryLicenseLanguage
plpython3u1.0LANGPostgreSQLC
IDExtensionBinLibLoadCreateTrustRelocSchema
3290plpython3uNoYesNoYesNoNopg_catalog
3291jsonb_plpython3uNoNoNoYesNoYes-
3292ltree_plpython3uNoYesNoYesNoYes-
3293hstore_plpython3uNoNoNoYesNoYes-
Relatedplpython3u faker jsonb_plperl jsonb_plperlu pg_jsonschema jsquery plpgsql

Version

PG18PG17PG16PG15PG14
1.01.01.01.01.0

Install

Note: This is a built-in contrib extension of PostgreSQL

CREATE EXTENSION jsonb_plpython3u;

Usage

jsonb_plpython3u: Transform between jsonb and PL/Python3

Provides a transform for the jsonb type for PL/Python3U. When loaded, jsonb values are automatically converted to Python dicts, lists, and scalars, and vice versa.

CREATE EXTENSION jsonb_plpython3u;

CREATE FUNCTION jsonb_keys_sorted(val jsonb) RETURNS text[]
LANGUAGE plpython3u TRANSFORM FOR TYPE jsonb AS $$
  # val is now a Python dict
  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);

Last Modified 2026-03-12: add pg extension catalog (95749bf)