Python遍历列表访问Response属性报AttributeError解决方法
问题原因
response.i的写法会让Python固定查找Response对象上名称固定为i的属性,不会自动解析循环变量i存储的字符串值作为属性名查找,因此触发找不到i属性的报错。你单独调用response.url等属性时写的是明确的属性名字面量,自然可以正常运行。
修复方法
用Python内置的getattr()函数实现动态属性访问,该函数支持传入字符串格式的属性名,返回对象对应属性的值。
修正后代码:
response = requests.get(url) m1 = ['ok', 'raise_for_status', 'raw', 'reason', 'request', 'status_code', 'text', 'url'] for i in m1: print(i) print(getattr(response, i))
注意:列表中的
raise_for_status是Response对象的方法,如果需要执行该方法,在getattr返回结果后加括号即可:getattr(response, 'raise_for_status')()
内容的提问来源于stack exchange,提问作者Momba Chomba
相关产品推荐
相关产品推荐

