跳过 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

(你不应该使用如此广泛的异常捕获,但我不知道发生的错误。)