Python : 在循环中传递异常
Python : pass an exception in a loop
我坚持使用我的简单代码,我是编码新手..我正在使用 python 并且
在我的列表中,我有错误的值导致异常(httperror:404)。我想忽略这个异常并继续我的循环。但是在我的代码中,print("Http error") 一次又一次地循环。我不知道如何通过这个异常来再次循环整个代码。
while i < len(list_siret):
try :
data = api.siret(list_sirets[i]).get()
str_datajs = json.dumps(data, indent= 4)
a_json = json.loads(str_datajs)
i +=1
print("test1", i ,str_datajs)
except urllib.error.URLError :
print("Http error")
pass
因为你在except
块中有print("Http error")
,每次异常发生时它都会被执行。
考虑下面更惯用的方法:
for siret in list_siret:
try:
data = api.siret(siret).get()
except urllib.error.URLError:
continue
str_datajs = json.dumps(data, indent=4)
a_json = json.loads(str_datajs)
print("test1", i ,str_datajs)
我们直接迭代 list_siret
而无需对其进行索引并手动管理 i
,而不是 pass
我们只是移动到列表中的下一个元素以防万一出现异常。
我坚持使用我的简单代码,我是编码新手..我正在使用 python 并且 在我的列表中,我有错误的值导致异常(httperror:404)。我想忽略这个异常并继续我的循环。但是在我的代码中,print("Http error") 一次又一次地循环。我不知道如何通过这个异常来再次循环整个代码。
while i < len(list_siret):
try :
data = api.siret(list_sirets[i]).get()
str_datajs = json.dumps(data, indent= 4)
a_json = json.loads(str_datajs)
i +=1
print("test1", i ,str_datajs)
except urllib.error.URLError :
print("Http error")
pass
因为你在except
块中有print("Http error")
,每次异常发生时它都会被执行。
考虑下面更惯用的方法:
for siret in list_siret:
try:
data = api.siret(siret).get()
except urllib.error.URLError:
continue
str_datajs = json.dumps(data, indent=4)
a_json = json.loads(str_datajs)
print("test1", i ,str_datajs)
我们直接迭代 list_siret
而无需对其进行索引并手动管理 i
,而不是 pass
我们只是移动到列表中的下一个元素以防万一出现异常。