Операция Python% не работает?

Кажется, я не могу заставить это работать, не может ли кто-нибудь указать мне правильное направление? Если я ввожу значения без запроса, это работает, но когда я это делаю, я получаю сообщение об ошибке.

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)  

Ошибка:

Трассировка (последний последний вызов): файл «attend_punch.py», строка 32, в

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

% (username1) TypeError: неподдерживаемые типы операндов для %: 'Response' и 'str'


person Arsalan    schedule 24.12.2012    source источник
comment
Вы хотите сделать % сразу после строки, вы пытаетесь сделать это для всего объекта запроса прямо сейчас.   -  person Paolo Bergantino    schedule 25.12.2012
comment
я понимаю, что вы имеете в виду, спасибо, ребята   -  person Arsalan    schedule 25.12.2012
comment
% в этом коде действует как оператор модуля --- находит оставшуюся часть деления этажа.   -  person Rushy Panchal    schedule 25.12.2012


Ответы (3)


Вы можете попробовать это вместо этого

auth = HttpNtlmAuth("domain\\%s" % username1, password), cookies = jar) 
person Omiga    schedule 24.12.2012

То, что вы, вероятно, хотите, это:

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

Чтобы выполнить интерполяцию строк с помощью %, % и значение должны следовать сразу за строкой:

"domain\\%s" % username1

а не просто идти позже в строке:

HttpNtlmAuth("domain\\%s", ...) % username1
person Amber    schedule 24.12.2012

Символ % может иметь 2 значения в Python:

  • Оператор по модулю, который даст вам остаток от деления int на другой. Это обычно используется для 2 номеров.
  • Оператор форматирования строки, который следует после строки для замены заполнителей фактическими значениями. Это то, что вам нужно, но вы не размещаете его сразу после строки, поэтому Python интерпретирует его как оператор по модулю, и, поскольку он не определен ни для какого объекта (только для int обычно), вызывает это исключение .
person jadkik94    schedule 24.12.2012