Обработка данных
data собирает значения и преобразует структурированные данные в памяти.
Параметры
| operation | Входы | Выходы |
|---|---|---|
build | value: JSON | value |
table | rows, header/columns, first_row, where, limit | records, count, first |
difference | source, target, source_key, target_key, trim, casefold, skip_empty, limit | items, count, remaining |
parse | format=json, text | value |
serialize | format=json, value, pretty=false | text |
Невалидный JSON завершает parse ошибкой. Результат build читается через {step.value}.
Пример
- id: payload
block: data
params:
operation: build
value:
title: "{inputs.title}"
published: falseРезультат
Каждая операция возвращает поля из своей схемы в таблице выше. Например, {payload.value} — построенный объект; parse возвращает value, serialize — text.
Поведение
Невалидный JSON завершает parse ошибкой. Блок не выполняет сетевые запросы и пользовательский код. Дополнения сначала рассматриваем внутри data с отдельными схемами операций.
Таблица
Без columns первая строка — заголовок. Явные columns означают отсутствие заголовка; header=true вместе с columns запрещён.
first_row задаёт номер первой строки данных: по умолчанию 2 с заголовком, иначе 1. Поле row хранит исходный номер и не может перезаписать одноимённую колонку. where содержит field, op, expected.
Пустой ввод возвращает records=[], count=0, first=null.
Разность наборов
Возвращаются элементы source, ключей которых нет в target: без повторов, в исходном порядке. source_key/target_key — пути JSON Pointer; пустой путь выбирает скалярный элемент целиком.
trim, casefold и skip_empty по умолчанию false: удаление пробелов, сравнение без регистра и пропуск пустых ключей включаются явно. В формате v2 limit — положительное число или null (по умолчанию): ограничение самой операции отсутствует, но действует общий предел установки. remaining — число уникальных элементов вне заданного лимита. Старые сценарии с пределом 100 при миграции задают его явно.
Перенос старого table_difference
Старый блок неявно нормализует строки и умеет числовой фильтр. Эти правила нужно явно выразить в workflow при миграции.
Параметры операций
Для build оставляем одно value, для parse/serialize — явный format. JSON входит в базовую часть пакета data, отдельного extra не требуется. header и columns описывают альтернативные способы задания колонок; конфликт отклоняется. Дубликаты имён и столкновение с служебным полем row должны давать понятную ошибку, а не терять данные.
У difference убираем привязку к фиксированному максимуму 100: предел задаёт вызывающий или установка. Пути ключей остаются JSON Pointer, нормализация строк — только явными флагами. Автоматическое приведение чисел и строк к одному ключу не включаем.
Плагины и установка
В составе блока: Сборка значений, таблицы, разность наборов, JSON и CSV.
| Плагин | Возможности |
|---|---|
yaml | Чтение и сериализация YAML-данных |
xml | Разбор, выборка и сериализация XML |
xlsx | Листы и значения Excel |
parquet | Колоночные таблицы |
markup | Markdown/HTML и извлечение текста |
Параметры выше описывают операции с JSON и таблицами. Форматы имеют отдельные схемы и ограничения размера/глубины; пользовательский код и сетевые запросы не выполняются.