Python Operation % не работает?
Кажется, я не могу заставить это работать, кто-то может направить меня в правильном направлении? Если я помещаю значения без запроса, это работает, но когда я делаю это, я получаю ошибку.
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 (последний вызов был последним): файл "serve_punch.py", строка 32, в
r = requests.get("https://linktoasp.netserver/homeportal/default.aspx",auth=HttpNtlmAuth("domain\\%r",password),cookies=jar)
% (username1) TypeError: неподдерживаемые типы операндов для%: 'Response' и 'str'
3 ответа
Решение
Вы можете попробовать это вместо
auth = HttpNtlmAuth("domain\\%s" % username1, password), cookies = jar)
Что вы, вероятно, хотите, это:
r = requests.get(
"https://linktoasp.net/",
auth=HttpNtlmAuth("domain\\%s" % username1,password),cookies=jar)
Для того, чтобы сделать интерполяцию строки с %
, %
и значение должно следовать сразу за строкой:
"domain\\%s" % username1
а не просто позже в строке:
HttpNtlmAuth("domain\\%s", ...) % username1
%
Символ может иметь 2 значения в Python:
- Оператор по модулю, который даст вам остаток от деления типа int на другой. Это обычно используется для 2 номеров.
- Оператор форматирования строки, который следует за строкой, чтобы заменить заполнители фактическими значениями. Это то, что вы хотите, но вы не размещаете его сразу после строки, поэтому Python интерпретирует его как оператор по модулю, и поскольку он не определен ни для какого объекта (только для
int
обычно), поднимает это исключение.