Я работаю с продуктом Oracle EPM под названием «Управление данными о финансовых данных Enterprise Edition» (FDMEE). Я написал сценарий Jython для синтаксического анализа файла данных и нажатия его на пользовательскую таблицу в схеме продукта FDMEE.IndexError: индекс за пределами диапазона: 7
Он отлично работает, когда я нажимаю подмножество файла данных. Но когда я разобрать весь файл данных, она не с ошибкой IndexError: индекс вне диапазона: 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
Ниже код я использую:
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()
Эта ошибка сообщает вам не 8-й элемент списка. Каков ожидаемый результат? Проверьте его и попробуйте отследить. –
Кроме того, прочитайте документацию Pandas [здесь] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.html) и работайте с файловыми кадрами, они намного лучше для этой цели. –
У меня не было много времени, чтобы посмотреть на ваш код, но я бы предложил использовать Dict_Reader из модуля csv, чтобы вы могли посмотреть, что столбец по имени столбца скорее по индексу. Попробуйте это вместо этого, и вы можете найти решение, не зная о проблеме – Connor