Python pandas UIPath - 列表分配索引超出范围

Python pandas UIPath - List assignment index out of range

我目前遇到错误

list assignment index out of range

在调用 Python 范围内。我只是想检查每个变量是否包含 'a' 中提到的任何字符串。如果是,则将其作为一行添加到 excel sheet.

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()

您不能写入尚不存在的元素。 listb=[] 创建一个空列表,因此没有索引为 0 的元素。您可以像这样附加项目:listb.append(foo)

但是,既然您提到了 UiPath - 我建议您在工作流程中而不是您的 Python 脚本中检查变量及其值。通过这种方式,您的脚本只做一件事,而且完全是一件事 - 工作流本身确保满足所有先决条件。如果没有,您可以抛出并捕获错误消息,例如在另一个工作流程中,并要求用户输入。如果该逻辑是您脚本的一部分,这将更加困难。

这是一个非常简单的例子: