Finansal Veri Kalitesi Yönetimi Enterprise Edition (FDMEE) adı verilen bir Oracle EPM Ürünüyle çalışıyorum. Bir veri dosyasını ayrıştırmak ve FDMEE ürün şemasındaki özel bir tabloya itmek için bir Jython betiği yazdım.IndexError: Aralık dışı dizin: 7
Veri dosyasının bir alt kümesini zorladığımda iyi çalışıyor. Ben tüm veri dosyasını ayrıştırmak Ama bu hata IndexError başarısız: endeksi aralık dışında: 7.
ardından hata mesajı ben alırsınız:
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
ardından kullandığım kodudur:
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()
Bu hata listenin 8 unsuru yok bildiriyor: Bir bonus olarak
, burada kod yazmak için daha etkili bir yoldur. Beklenen çıktı nedir? Kontrol et ve geri izlemeyi dene. –
Ayrıca, Pandalar belgelerini [burada] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.html) okuyun ve veri çerçeveleriyle çalışın, bu amaç için çok daha iyiler. –
Kodunuza bakmak için fazla zamanım olmadı, ancak Ds_Reader'ı csv modülünden kullanmanızı öneririm, böylece sütunu sütun dizinine göre dizine göre görebilirsiniz. Bunun yerine deneyin ve problemi bilmeden bir çözüm bulabilirsin – Connor