第二次开始循环时,将导致错误:
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))
请帮助我
答案 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