python错误找回_python字典键错误无法恢复

我正在一个巨大的链接列表中执行状态检查,我的代码片段如下:link = 'http://xyz'

proxyDict = { "http" : "ip:80", "https" : "https://ip:443"}

r = requests.get(link, allow_redirects=False, verify=False)

http_status = r.status_code

print (r.headers)

# check the status and react accordingly

if http_status == 200 and r.headers['content-length'] == "0":

print ('Link Alive - NO content'+';'+str(http_status)+';'+link, file = log)

elif http_status == 200 and "text/html" in r.headers['content-type']:

print ('External- direct HTML link'+';'+str(http_status)+';'+link, file = log)

elif http_status == 200 and "application" in r.headers['content-type']:

print ('External- direct HTML link'+';'+str(http_status)+';'+link, file = log)

当我执行代码时,会出现以下错误:return self._store[key.lower()][1]

KeyError: 'content-length'

报头输出如下:CaseInsensitiveDict({'status': '200', path=/; HttpOnly, shpuvid=rBBcnFJUTliSHV+hA5lLAg==; expires=Thu, 08-Oct-15 18:26:32 GMT;'connection': 'keep-alive', 'cache-control': 'max-age=0, private, must-revalidate', 'date': 'Tue, 08 Oct 2013 18:26:32 GMT', 'content-type': 'text/html; charset=utf-8', 'x-rack-cache': 'miss'})

我知道这个错误的存在是因为header output没有键“content length”,但是当if condition不满足时,它必须跳转到下一个elif条件,而这个条件不会发生,而是停止代码执行抛出上述错误。

有什么建议吗?可能是个愚蠢的问题,但对初学者来说是件好事。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值