Python-使用urllib对url请求执行try/exception和exit代码
我的代码中有一些try语句。在内部,使用“with”创建url连接的步骤很少 我的问题是: 即使某个url连接不工作,我的代码(数据未发布或更新)也会标记为已完成,返回代码为0。我需要改变它。我想为每个url连接创建一个单独的条件(如果失败,请给出一个退出代码“xx”并且未完成) 我试图为每个url连接传递第一个主“try”和cratet try,但这一个完全不起作用 这是我代码的一部分Python-使用urllib对url请求执行try/exception和exit代码,python,try-catch,urllib,exit,with-statement,Python,Try Catch,Urllib,Exit,With Statement,我的代码中有一些try语句。在内部,使用“with”创建url连接的步骤很少 我的问题是: 即使某个url连接不工作,我的代码(数据未发布或更新)也会标记为已完成,返回代码为0。我需要改变它。我想为每个url连接创建一个单独的条件(如果失败,请给出一个退出代码“xx”并且未完成) 我试图为每个url连接传递第一个主“try”和cratet try,但这一个完全不起作用 这是我代码的一部分 try: for my_name in names: if my_name in MyCatal
try:
for my_name in names:
if my_name in MyCatalog:
cal_select = my_name[1:]
resource_name = my_name
# 1ST URL CONNECTION
getResourceData = {
"id": resource_name
}
getResourceRequest = urllib.request.Request( url = 'www.mypage.com',
method = "POST", data=bytes(urllib.parse.urlencode(getResourceData).encode("utf-8")))
getResourceRequest.add_header("Content-type", "application/x-www-form-urlencoded; charset=UTF-8")
with opener.open(getResourceRequest, timeout=2) as getResourceResp:
getResourceResponseData = json.loads(getResourceResp.read().decode("utf-8"))
bkp_file_name = str(my_name + '_bkp.txt')
local_filetemp = os.path.join(dir_name, bkp_file_name)
with open(local_filetemp, "w") as g:
resource_response_cal = json.dump(getResourceResponseData, g, ensure_ascii=False, indent=4)
# 2ND URL CONNECTION
updateResourceData = {
"id": resource_name,
"simpleId": resource_name,
"data": [ ],
}
updateResourceRequest = urllib.request.Request( url = 'www.mypage.com',
method ="POST", data=bytes(urllib.parse.urlencode(updateResourceData, True).encode("utf-8")))
updateResourceRequest.add_header("Content-type", "application/x-www-form-urlencoded; charset=UTF-8")
with opener.open(updateResourceRequest, timeout=2) as updateResourceResp:
updateResourceResponseData = json.loads(updateResourceResp.read().decode("utf-8"))
# 2ND URL CONNECTION - part 2
with open(data_filename, 'r') as data_File:
data_F = data_File.read()
update2ResourceData = {
"id": resource_name,
"simpleId": resource_name,
"data": [ data_F ],
}
update2ResourceRequest = urllib.request.Request( url = 'www.mypage.com',
method ="POST", data=bytes(urllib.parse.urlencode(update2ResourceData, True).encode("utf-8")))
update2ResourceRequest.add_header("Content-type", "application/x-www-form-urlencoded; charset=UTF-8")
with opener.open(update2ResourceRequest, timeout=2) as update2ResourceResp:
update2ResourceResponseData = json.loads(update2ResourceResp.read().decode("utf-8"))
elif my_name not in MyCatalog:
pass
else:
print('Something not right')
except:
print('ERROR.Try again.')
sys.exit(10)