Завдання та передумови
Взяти масив data.items із JSON та створити плоский CSV з узгодженим порядком колонок.
Приклад містить навчальні дані та налаштування. Виберіть власні тестові джерела й підключення замість ідентифікаторів demo_*, відтворіть очікуваний результат і лише потім використовуйте робочі об’єкти.
Навчальні вхідні дані
{
"data": {
"items": [
{
"sku": "T01",
"name": "Tea",
"stock": 12
},
{
"sku": "C01",
"name": "Coffee",
"stock": 5
}
]
},
"generated": "demo"
}Блоки, зв’язки й точні налаштування
Топологія прикладу 03: 3 блоки, 2 зв’язки. Збережено ідентифікатори вузлів і порти налаштованого графа.
Додайте наведені блоки в конструктор, відкрийте властивості кожного й установіть такі значення. Назви demo_* позначають навчальні джерела та підключення.
| Блок | Налаштування |
|---|---|
| 1 Файл src |
|
| 2 Мапінг колонок map |
|
| 3 Вивантаження даних out |
|
Зв’язки портів
- src
out→ mapin - map
out→ outin
Повна конфігурація графа JSON
{
"version": 3,
"nodes": [
{
"id": "src",
"type": "file",
"label": "src",
"config": {
"role": "source",
"source_id": "demo_inventory_json",
"options": {
"json_path": "/data/items",
"range": "A1:C3",
"header": true
}
}
},
{
"id": "map",
"type": "mapping",
"label": "map",
"config": {
"mode": "columns",
"columns": [
{
"name": "SKU",
"value": "sku"
},
{
"name": "Name",
"value": "name"
},
{
"name": "Stock",
"value": "stock"
}
]
}
},
{
"id": "out",
"type": "export",
"label": "out",
"config": {
"format": "csv",
"filename": "inventory",
"destination": "download",
"delimiter": ";",
"timezone": "Europe/Kyiv"
}
}
],
"edges": [
{
"source": "src",
"target": "map",
"source_port": "out",
"target_port": "in"
},
{
"source": "map",
"target": "out",
"source_port": "out",
"target_port": "in"
}
]
}Очікуваний результат
| SKU | Name | Stock |
|---|---|---|
| T01 | Tea | 12 |
| C01 | Coffee | 5 |
Запуск і перевірка
- Збережіть наведений JSON у inventory.json та додайте його як файлове джерело.
- Укажіть json_path=/data/items, а в мапінгу — точні початкові назви sku, name, stock.
- Запустіть і перевірте inventory.csv: два рядки, немає службового generated.
Типові помилки
- Файлове джерело використовує JSON Pointer /data/items. Це відрізняється від шляху data.items у REST API-підключенні.
- Шлях має вести до записів: помилка в items дасть відсутній шлях або неправильну структуру.
- Мапінг чутливий до точних назв полів; SKU є назвою виходу, sku — назвою входу.