2015-07-16 18 views
0

Привет Я новичок в python и читаю файл excel. Который я снова вставляю в массив. Но я получаю сообщение об ошибке'int' объект не подпишимый python 2.7

File "SPD_new.py", line 57, in <module> 
    spd_record.transdate = str(mapping_record[4]) 
TypeError: 'int' object is not subscriptable 

Ниже мой код:

workbook = xlrd.open_workbook("SPD.xlsx") 
worksheets = workbook.sheet_names() 
mapping_records = {} 
for worksheet_name in worksheets: 
    worksheet = workbook.sheet_by_name(worksheet_name) 
    mapping_record = MappingRecord() 
    if worksheet_name == "NB": 
     for curr_row in range(0,worksheet.nrows): 
      mapping_record = worksheet.row(curr_row) 
      mapping_records[0] = mapping_record 
      print worksheet_name 
      print mapping_record[1] 
      for mapping_record in mapping_records: 
       print "In If...." 
       spd_record = MappingRecord() 
       spd_record.merchantid = "00002269" 
       spd_record.transdate = mapping_record[4] 
       spd_record.amount = float(mapping_record[5]) 
       spd.erocode = None 
       spd.scno = None 
       mapping_records[spd_record[8]] = spd_record 
       print spd_record 
    elif worksheet_name == "CD": 
     for curr_row in range(0,worksheet.nrows): 
      mapping_records[0] = mapping_record 
      print worksheet_name 
print "Read SPD File....." 
+0

Обратите внимание, что ваш трассировка не совсем соответствует вашему фактическому коде как отправлено; вам не хватает вызова 'str()' в отправленном коде. –

ответ

0

Вы используете имя mapping_record для двух различных вещей в вашем коде:

# a custom object 
mapping_record = MappingRecord() 

# as a loop variable 
for mapping_record in mapping_records: 

Внутри loop это один из ключей в словаре mapping_records, и ваши ключи целые, поэтому, когда вы попробуйте использовать mapping_record[4], вы получите исключение.

Возможно, вам нужно было перевернуть значения в словаре? В этом случае используйте:

for mapping_record in mapping_records.values(): 
+0

спасибо .. действительно работает. !! :) – user2597209

Смежные вопросы