假设我正在调用一个Web api,在超出限制后需要等待4秒钟。如果遇到异常,使用tryexcept循环和时间包可以使程序暂停。如果我在迭代循环中使用pandas索引,程序会在中断的地方继续执行吗?示例:
i = 0
while i < len(df):
try:
df['A'] = df[i:i + 10].apply(lambda x: api_call(x['B'])[0] + 10)
except IndexError:
time.sleep(5)
i += 10
如果在df [12]上引发了异常,则在程序暂停5秒钟后,如何使程序在导致异常的索引处接听(信号表示程序超出了允许的调用次数) )?
答案 0 :(得分:2)
我认为您只需要在else
代码上放置一个try...except
块即可。
i = 0
while i < len(df):
try:
df['A'] = df[i:i + 10].apply(lambda x: api_call(x['B'])[0] + 10)
except IndexError:
time.sleep(5)
else:
i += 10
这使得i += 10
仅在try
块未引发异常的情况下运行。否则,循环将以相同的i
值重复。