0

我似乎无法让这个工作,不能有人指出我正确的方向吗?如果我在没有提示的情况下输入值,但当我这样做时,它会起作用,我会出错。

username1 = raw_input('Enter Username:\n')
password = raw_input('Enter Password:\n')
r = requests.get("https://linktoasp.net/",auth=HttpNtlmAuth("domain\\%s",password),cookies=jar) % (username1)  

错误:

Traceback(最近一次通话最后一次):文件“attend_punch.py​​”,第 32 行,在

r = requests.get("https://linktoasp.netserver/homeportal/default.aspx",auth=HttpNtlmAuth("domain\\%r",password),cookies=jar)

% (username1) TypeError: %: 'Response' 和 'str' 不支持的操作数类型

4

3 回答 3

4

你可以试试这个

auth = HttpNtlmAuth("domain\\%s" % username1, password), cookies = jar) 
于 2012-12-24T23:12:38.883 回答
3

你可能想要的是:

r = requests.get(
        "https://linktoasp.net/",
         auth=HttpNtlmAuth("domain\\%s" % username1,password),cookies=jar)

为了用 进行字符串插值%%和 值需要紧跟在字符串后面:

"domain\\%s" % username1

而不仅仅是排在后面:

HttpNtlmAuth("domain\\%s", ...) % username1
于 2012-12-24T23:13:02.067 回答
3

%符号在 Python 中可以有 2 种含义:

  • 模运算符,它将为您提供一个 int 除以另一个的余数。这通常用于 2 个数字。
  • 字符串格式化运算符,位于字符串之后,用于将占位符替换为实际值。这就是你想要的,但你没有把它放在字符串之后,所以 Python 将它解释为模运算符,并且由于它没有为任何对象定义(仅适用于int 通常),因此引发了该异常。
于 2012-12-24T23:14:45.677 回答