Python 在for循环中为true时尝试/例外
以下代码将从API收集数据,try/except子句将有助于处理多个错误(来自身份验证、索引等)。 只有一个错误(身份验证错误),我正在使用Python 在for循环中为true时尝试/例外,python,loops,exception,Python,Loops,Exception,以下代码将从API收集数据,try/except子句将有助于处理多个错误(来自身份验证、索引等)。 只有一个错误(身份验证错误),我正在使用while True重复API调用,以确保我获得数据,并且在尝试一两次后会得到。然而,如果我以任何方式得到另一个错误,它将无限循环,我无法打破它,因此它将进入下一个迭代。我试图创建一个计数器,如果计数器达到一个数字,则(通过或继续或中断),但它不工作 ## Create a array to loop to: data_array_query = pd.da
while True
重复API调用,以确保我获得数据,并且在尝试一两次后会得到。然而,如果我以任何方式得到另一个错误,它将无限循环,我无法打破它,因此它将进入下一个迭代。我试图创建一个计数器,如果计数器达到一个数字,则(通过
或继续
或中断
),但它不工作
## Create a array to loop to:
data_array_query = pd.date_range(start_date,end_date,freq='6H')
#This is my idea but is not working
#Create a counter
counter = 0
#Loop through the just created array
for idx in range(len(data_array_query)-1):
## If counter reaches move on to next for loop element
while True:
if counter>=5:
break
else:
try:
start_date = data_array_query[idx]
end_date = data_array_query[idx+1]
print('from',start_date,'to',end_date)
df = api.query(domain, site_slug, resolution, data_series_collection, start_date=str(start_date), end_date=str(end_date), env='prod', from_archive=True, phase='production').sort_index()
print(df.info())
break
except Exception as e:
print(e)
counter +=1
print(counter)
因此,运行这段代码几天的结果表明,当它运行5次时(这是我设置的最大计数器),它确实会中断,但它会中断整个循环,我只希望它移动到下一个日期
任何帮助都将不胜感激,您需要使用break语句来摆脱while True循环。传递并继续具有固定迭代次数的循环的工作。虽然循环可以永远继续(因此名称不同)我尝试过,但它也停止了for循环。@JuanHurtado python不应该这样做。你确定你做得对吗?@Michaelhofman你是对的。实际上我忘了再次将计数器重置为0。这解决了一切。