Как интегрировать код Python в Loginom

0 голосов
MilKis в категории Как сделать...

Написал код на Python, но при компиляции никакие данные не выводит. Код: 

import builtin_data

from builtin_data import InputTable, OutputTable

import pandas as pd

from builtin_pandas_utils import to_data_frame, prepare_compatible_table, fill_table

def extract_after_fourth_space(text):

    # Разделяем строку по пробелам

    parts = text.split(' ')

    # Объединяем все части после четвертого пробела в одну строку

    if len(parts) > 4:

        return ' '.join(parts[4:])

    else:

        return ''  # Если пробелов меньше 4, возвращаем пустую строку

# Проверка наличия входной таблицы

if InputTable:

    # Создание pd.DataFrame по входному набору данных

    input_frame = to_data_frame(InputTable)

    # Проверка, что DataFrame не пуст и содержит нужные данные

    if not input_frame.empty and 'text_column' in input_frame.columns:

        # Применение функции к столбцу данных

        input_frame['result'] = input_frame['text_column'].apply(extract_after_fourth_space)

        # Подготовка и запись результатов в выходную таблицу

        prepare_compatible_table(OutputTable, input_frame[['result']], with_index=False)

        fill_table(OutputTable, input_frame[['result']], with_index=False)

    else:

        print("InputTable is empty or missing 'text_column'.")

else:

    print("No InputTable available.")

Ответ: 1 шт.

0 голосов
vitaliy.tatarskih

Здравствуйте,
ваш код рабочий. 

Возможно вы не поставили галку "Разрешить формировать выходные столбцы из кода". При запуске узла Python ошибка выводится? Если да, то какая? Что выводится в консоли "Вывод" окна предпросмотра?

MilKis
Ничего не выводится.. Хотя должно, поэтому я не могу понять, что делаю не так..
MilKis
Может я могу как то отправить Loginom файл?
vitaliy.tatarskih
отправьте на [email protected]
MilKis
Отправил.
vitaliy.tatarskih
укажите в письме редакцию и версию Loginom, в которой работаете. Вы можете их посмотреть в меню "О программе"
vitaliy.tatarskih

Вы используете два порта входных наборов и данные подаете на второй порт "Входной источник данных 2". InputTable же возвращает данные первого порта. Для обращения ко второму и последующим портам необходимо использовать InputTables[N], где N - индекс порта (в вашем случае N = 1, так как индексация идет с 0). Подробнее в справке, не забывайте про нее.

Кстати в вашем случае в консоли Вывод выводится "No InputTable available.". Возможно вы ее не раскрываете.

...