IndexError:索引超出范围:7

Gau*_* TP 5 python python-2.7 jython-2.5 jython-2.7

我正在使用名为Financial Data Quality Management Enterprise Edition(FDMEE)的Oracle EPM产品.我编写了一个Jython脚本来解析数据文件并将其推送到FDMEE产品模式中的自定义表.

当我推送数据文件的子集时,它工作正常.但是当我解析整个数据文件时,它失败并出现错误IndexError:index超出范围:7.

以下是我收到的错误消息:

File "\\vmhodvesip4\D$\SVESI7\Custom\FDMEEApps\BFRVN/data/scripts/event/BefImport.py", line 5, in <module>

    if row[7]=='JAN':

IndexError: index out of range: 7
Run Code Online (Sandbox Code Playgroud)

以下是我使用的代码:

import csv

recReader = csv.reader(open('D:/SVESI7/Custom/FDMEEApps/BFRVN/inbox/BF_Reven_Load/Test03big.txt'), delimiter='!')
for row in recReader:
    if row[7]=='JAN':
        period_num = '1'
    elif row[7]=='FEB':
        period_num = '2'
    elif row[7]=='MAR':
        period_num = '3'
    elif row[7]=='APR':
        period_num = 4
    elif row[7]=='MAY':
        period_num = 5
    elif row[7]=='JUN':
        period_num = 6
    elif row[7]=='JUL':
        period_num = 7
    elif row[7]=='AUG':
        period_num = 8
    elif row[7]=='SEP':
        period_num = 9
    elif row[7]=='OCT':
        period_num = 10
    elif row[7]=='NOV':
        period_num = 11
    elif row[7]=='DEC':
        period_num = 12
    else:
        period_num = 'skip'

    if period_num != 'skip':
        params1 = ['batch_plnapps_oi',row[7],period_num,'20' + row[1][-2:],row[2], row[3], row[4], row[5], row[6], row[8], row[9], row[10], row[11], round(row[12],12)]
        ins_stmt1 = "insert into aif_open_interface(batch_name,period,period_num,year,col03,col04,col05,col06,col07,col09,col10,col11,col12,amount) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?)"
        fdmAPI.executeDML(ins_stmt1,params1,False)

fdmAPI.commitTransaction()
Run Code Online (Sandbox Code Playgroud)

Vik*_*ran 0

如果没有看到您的 .csv,我们无法为您提供太多帮助,但是...

  1. 确保 csv 中的每一行都具有正确的格式
  2. 确保 csv 中的最后一行不仅仅是空格。
  3. 具体查看csv.reader 文档中的可选参数newline=''