微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python - 使用 urllib 的 url 请求的尝试/异常和退出代码

如何解决Python - 使用 urllib 的 url 请求的尝试/异常和退出代码

我的代码中有一些 try 语句。里面有几个步骤使用“with”创建url连接。

我的问题是: 即使某些 url 连接不起作用,我的代码(数据不是 POST 或 UPDATE)也被标记为已完成,返回代码为 0。我需要更改它。我想为每个 url 连接创建一个单独的条件(如果失败,则给出退出代码“xx”并且未完成)。

我尝试为每个 url 连接传递第一个主要的“尝试”和 craete 尝试,但这个完全不能正常工作。

这是我的代码的一部分。

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,"data": [ data_F ],}
        
        update2ResourceRequest = urllib.request.Request( url = 'www.mypage.com',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)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。