跳过 for 循环中的错误行
skip an error row in a for loop
我正在遍历 csv 文件中的每一行,choose/calculate 只遍历满足条件的行。但是,当连续出现错误时,它会停止循环。有没有办法告诉 python 跳过错误并移至下一行?我使用 try
函数但没有用。我的代码是
try(row['BAS'] = float(row['Close Ask']) - float(row['Close Bid']))
错误是其中一个单元格是字符串,无法转换为浮点数
您可以通过捕获该类型的错误 (ValueError
) 并有效地忽略它来忽略该错误:
try:
row['BAS'] = float(row['Close Ask']) - float(row['Close Bid'])
except ValueError:
pass
你想要这样的东西:
for row in csv_file:
try:
x = float(row['Close Ask']) - float(row['Close Bid'])
except ValueError:
continue
else:
# now keep going doing something with x
...
你应该把你的代码放在 try/except:
try:
code
except:
pass
(你不应该使用如此广泛的异常捕获,但我不知道发生的错误。)
我正在遍历 csv 文件中的每一行,choose/calculate 只遍历满足条件的行。但是,当连续出现错误时,它会停止循环。有没有办法告诉 python 跳过错误并移至下一行?我使用 try
函数但没有用。我的代码是
try(row['BAS'] = float(row['Close Ask']) - float(row['Close Bid']))
错误是其中一个单元格是字符串,无法转换为浮点数
您可以通过捕获该类型的错误 (ValueError
) 并有效地忽略它来忽略该错误:
try:
row['BAS'] = float(row['Close Ask']) - float(row['Close Bid'])
except ValueError:
pass
你想要这样的东西:
for row in csv_file:
try:
x = float(row['Close Ask']) - float(row['Close Bid'])
except ValueError:
continue
else:
# now keep going doing something with x
...
你应该把你的代码放在 try/except:
try:
code
except:
pass
(你不应该使用如此广泛的异常捕获,但我不知道发生的错误。)