Code node

В этом разделе приведены практические примеры и рекомендации использования Code node для работы с данными в Нейро42.

Связанные ресурсы:

 

Получение количества элементов от предыдущего узла

Чтобы узнать, сколько элементов вернул предыдущий узел, можно использовать следующий код:

// JavaScript

if (Object.keys(items[0].json).length === 0) {

  return [

    { json: { results: 0 } }

  ];

}

 

return [

  { json: { results: items.length } }

];

 

# Python

if len(items[0].json) == 0:

    return [{«json»: {«results»: 0}}]

 

return [{«json»: {«results»: len(items)}}]

 

Пример вывода:

[

  { «results»: 8 }

]

 

Работа с бинарными данными

Бинарный буфер содержит все файлы и бинарные данные, обработанные в воркфлоу.

Его используют для:

  • Манипуляций с данными (например, добавление заголовков в CSV)
  • Вычислений (например, создание хэш-суммы файла)
  • Сложных HTTP-запросов (например, загрузка файла + отправка других данных)

Не поддерживается в Python

Использование getBinaryDataBuffer()

/* 

* itemIndex: индекс элемента во входных данных

* binaryPropertyName: имя бинарного свойства

* По умолчанию для узлов Read/Write File From Disk имя ‘data’

*/

let binaryDataBufferItem = await this.helpers.getBinaryDataBuffer(itemIndex, binaryPropertyName);

 

Пример:

let binaryDataBufferItem = await this.helpers.getBinaryDataBuffer(0, ‘data’);

// Возвращает данные бинарного буфера для первого элемента

 

Всегда используйте getBinaryDataBuffer(), не обращайтесь напрямую к items[0].binary.data.data.

 

Вывод в консоль браузера

Для отладки можно использовать:

  • JavaScript: console.log()
  • Python: print()

Пример JavaScript

let a = «apple»;

console.log(a);

Пример Python

a = «apple»

print(a)

 

Обработка [object Object] в консоли

Если выводится [object Object], значит данные имеют сложный тип. Нужно проверить тип и при необходимости преобразовать:

print(type(myData))

Если вывод:

<class ‘pyodide.ffi.JsProxy’>

То данные нужно преобразовать в нативный Python объект с помощью to_py(). Пример:

previousNodeData = _(«<node-name>»).all()

 

for item in previousNodeData:

    # item имеет тип JsProxy

    itemDict = item.json.to_py()

    print(itemDict)

 

Используется при работе с данными, возвращаемыми узлами Нейро42.

Подробнее о JsProxy см. в документации Pyodide

Предупреждение о применении иностранного языка

Настоящий мануал включает иностранные термины и выражения, оставленные в оригинале ввиду специфики предметной области и сложности однозначного перевода на русский язык. Данные элементы используются исключительно в целях повышения точности и ясности изложенного материала, поскольку точные аналоги на русском языке либо отсутствуют, либо существенно усложняют восприятие информации пользователями-профессионалами.

Техническая документация не является информацией для широкого круга потребителей. Документация предназначена исключительно для специализированных целей и рассчитана на аудиторию профессионалов, обладающих соответствующей квалификацией и знанием отраслевых стандартов и терминологии. Использование иностранной лексики согласуется с положениями действующего российского законодательства, регулирующего употребление иностранных слов в специальных материалах, направленных на профессиональных пользователей

Данная мера принята для минимизации рисков неправильного толкования ключевых понятий и предотвращения негативных последствий, связанных с некорректностью переводов сложных технических терминов и выражений.

Мы обращаем внимание на тот факт, что наличие иностранного языка в данной документации обусловлено профессиональной необходимостью и соответствует установленным нормам и правилам использования специализированной литературы и документации в Российской Федерации.

Свяжитесь с нами

Спасибо, получили вашу заявку!
Скоро мы с вами свяжемся.

А пока посмотрите реализованные проекты, которыми мы поделились на сайте.