Python pandas UIPath - индекс назначения списка вне диапазона - PullRequest
0 голосов
/ 18 декабря 2018

В настоящее время я сталкиваюсь с ошибкой

индекс назначения списка вне диапазона

в пределах области действия Python.Я просто пытаюсь проверить, содержит ли каждая из переменных какую-либо из строк, упомянутых в «а».Если да, то добавьте его в виде строки в таблицу Excel.

import pandas as pd
import xlsxwriter
def excel_data(mz01arg,p028arg,p006arg,s007arg,mz01desc,p028desc,p006desc,s007desc):
    listb=[]
    a=['MZ01','P028','P006','S007']
    if any (x in mz01arg for x in a) is True:
        listb[0] = [mz01arg]
    else:
        listb[0] = []
    if any (x in p028arg for x in a ) is True:
        listb[1] = [p028arg]
    else:
        listb[1] =[]
    if any (x in p006arg for x in a) is True:
        listb[2]=[p006arg]
    else:
        listb[2] = []
    if any (x in s007arg for x in a) is True:
        listb[3]=[s007arg]
    else:
        listb[3]=[]

    df1 = pd.DataFrame({'SODA COUNT': listb})
    df2 = pd.DataFrame({'SODA RISK DESCRIPTION': [mz01desc,p028desc,p006desc,s007desc]})
    writer = pd.ExcelWriter(r"D:\Single_process_python\try_python.xlsx", engine='xlsxwriter')
    df3 = pd.concat([df1,df2],axis=1)
    df3.to_excel(writer,sheet_name='Sheet1', index=False)
    writer.save()

1 Ответ

0 голосов
/ 18 декабря 2018

Вы не можете написать элемент, который еще не существует.listb=[] создает пустой список, поэтому в нем нет элемента с индексом 0. Вы можете добавлять элементы следующим образом: listb.append(foo).

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

Вот очень простой пример:

control flow in UiPath

...