'int'对象不可下标PYTHON

时间:2020-03-21 04:33:39

标签: python

第二次开始循环时,将导致错误:

 33 for i in range(1,len(t)):

 ---> 34   aux=t[i][2]
      35   aux2=t[i][4]
      36   empresa=t[i][0]      TypeError: 'int' object is not subscriptable  
for i in range(1,len(t)):
  aux=t[i][2]
  aux2=t[i][4]
  empresa=t[i][0]
  fecha=t[i][1]
  mails=aux.split(',')
  facturas=aux2.split(',')
  for t in range(0,len(mails)):
    print(mails[t])
    server.sendmail(msg['From'], mails[t], msg.as_string())
  print('se mando la linea '+str(empresa))

请帮助我

2 个答案:

答案 0 :(得分:0)

据我了解,您正在将变量t重命名为应该是列表或数组的整数。因此,当t[i][2]或对t的任何列表引用时,第一次循环迭代就可以正常工作,但是,当涉及到第一个循环{{1 }}更改为整数类型,因此,在第二次循环迭代中,它说“ int”对象不可下标。 您可以在下面的for循环中将t更改为另一个变量名。

t

答案 1 :(得分:0)

第9行print(mails[t]), 由于内部for循环,您的变量t被覆盖为int。它不再是迭代器。因此,对于upper(outer)for循环的第二次迭代,它不保留迭代器。 正如@Anurag所说,对于第8行的内部循环和第二个for循环内部,只需使用不同的变量名代替 t