Python Requests:如何安全获取存在性不确定的响应Header?
如何安全获取响应中可选的Retry-After Header值?
嘿,这个问题其实很常见,用Python字典自带的方法就能轻松解决,给你两种实用的方案:
方案一:用get()方法(最简洁)
response.headers本质是一个类字典对象,直接用字典的get()方法就能完美处理“存在则取值,不存在则返回默认值”的需求,不会抛出异常:
import requests response = requests.get(url) # 不存在时默认返回None retry_after = response.headers.get('Retry-After')
如果想在Header不存在时设置一个自定义默认值(比如0),只需要给get()传第二个参数:
# 不存在时赋值为0 retry_after = response.headers.get('Retry-After', 0)
方案二:显式条件判断(更灵活)
要是你需要在Header存在时做额外处理(比如把字符串转成整数),可以先判断Header是否存在:
retry_after = None if 'Retry-After' in response.headers: # 这里可以加额外逻辑,比如转换类型 try: retry_after = int(response.headers['Retry-After']) except ValueError: # 处理值不是有效整数的情况 retry_after = 0
这种方式逻辑更直观,适合需要对取值做进一步处理的场景。
内容的提问来源于stack exchange,提问作者bcsta
相关产品推荐
相关产品推荐

