jsonb_plpythonu

Трансформация для типа jsonb в структуру PL/Pythonu.
Связанные компоненты: plpythonu.
Схема размещения: ext.
Модуль реализует трансформации (преобразование) для типа jsonb в структуру недоверенного (untrusted) PL/Python.
Типы json предназначены для хранения данных в формате JSON (JavaScript Object Notation, запись объекта JavaScript) согласно стандарту RFC 7159.
Типы jsonb предназначены для хранения данных в формате JSONB, который представляет собой бинарное представление данных в формате JSON.
В общем случае такие данные можно хранить в текстовом формате, но применение типов JSON (JSONB) дает возможность проверять вводимое значение на соответствие формату JSON (JSONB).
Модуль jsonb_plpythonu является одним из дополнительных расширений для различных процедурных языков.
Расширения для недоверенных (untrusted) PL/Python:
При использовании расширений значения jsonb отображаются в соответствующие структуры Python:
  • массивы;
  • хеши;
  • скаляры.
Сравнение типов с точки зрения эффективности:
Параметрjsonjsonb
Cохраняет точную копию введенного текста
ДаВ разобранном двоичном формате
Скорость ввода
ВысокаяНизкая из-за разбора
Скорость обработки
Низкая из-за необходимости разбирать заново при каждом выполнении запросаВысокая
Поддержка индексации
НетДа

Использование модуля

Ниже приведены несколько примеров для понимания различий в работе типов:
  • значение JSON вводится и затем выводится без дополнительной обработки, выводит тот же текст, что поступил на вход:
    SELECT '{"bar": "baz", "balance": 7.77, "active":false}'::json;
    Пример вывода результата:
    Раскрыть type=sql
                          json
    -------------------------------------------------
     {"bar": "baz", "balance": 7.77, "active":false}
    (1 row)
    
  • jsonb не сохраняет семантически незначащие детали, такие как пробелы:
    SELECT '{"bar": "baz", "balance": 7.77, "active":false}'::jsonb;
    Пример вывода результата:
    Раскрыть type=sql
                          jsonb
    --------------------------------------------------
     {"bar": "baz", "active": false, "balance": 7.77}
    (1 row)
    
  • с jsonb числа выводятся по правилам нижележащего типа numeric:
    SELECT '{"reading": 4.230e-6}'::json, '{"reading": 4.230e-6}'::jsonb;
    Пример вывода результата:
    Раскрыть type=sql
             json          |          jsonb
    -----------------------+--------------------------
     {"reading": 4.230e-6} | {"reading": 0.000004230}
    (1 row)
    

Ссылки на документацию разработчика

Дополнительную информацию по поставляемому модулю jsonb_plpythonu можно получить по ссылке.
Описание специальных функций и операторов для работы с типами JSON (JSONB): https://www.postgresql.org/docs/13/functions-json.html.
Предыдущий раздел
jsonb_plpython3u
Следующий раздел
lo
Была ли страница полезной?