Python中如何将USER、PASSWORD变量的值正确传入AZURE_AUTH变量
报错根因
TypeError: 'str' object is not callable 报错的原因是requests的auth参数要求传入认证类实例或者(用户名,密码)元组这类可调用的认证对象,你之前应该误将AZURE_AUTH赋值为字符串格式,才会触发字符串不可调用的报错。
变量替换实现方法
直接修改AZURE_AUTH的赋值语句,将硬编码的用户名、密码参数替换为你提前定义的USER、PASSWORD变量即可,修改后的代码段如下:
# 替换原来的AZURE_AUTH赋值行 AZURE_AUTH = HTTPBasicAuth(USER, PASSWORD)
可选简化写法
你也可以不用单独导入HTTPBasicAuth,直接给auth参数传入用户名、密码组成的元组,requests会自动处理为基础认证逻辑,写法更简洁:
x = requests.request('GET', URL, proxies=PROXIES, auth=(USER, PASSWORD)).json()
注意事项
- Azure DevOps的基础认证逻辑中,用户名字段可填写任意非空值,密码字段需要填写你在平台生成的、开通了审计日志访问权限的个人访问令牌(PAT)
- 修改完成后可以打印
type(AZURE_AUTH)确认输出为<class 'requests.auth.HTTPBasicAuth'>,即可排除字符串类型错误
内容的提问来源于stack exchange,提问作者Paul1896
相关产品推荐
相关产品推荐

