Побег из HTML% 20 - PullRequest
       21

Побег из HTML% 20

1 голос
/ 08 февраля 2011

Я работаю над чем-то в Python, и мне нужно выйти из% 20, пробела в URL. Например:

"%20space%20in%20%d--" % ordnum

Так что мне нужно использовать% 20 ​​для URL, а затем% d для числа. Но я получаю эту ошибку:

TypeError: not enough arguments for format string

Я знаю, в чем проблема, я просто не знаю, как вырваться из% 20 и исправить это.

Ответы [ 4 ]

6 голосов
/ 08 февраля 2011

Один из способов - удвоить символы %:

"%%20space%%20in%%20%d--" % ordnum

но, вероятно, лучше использовать urllib.quote_plus():

urllib.quote_plus(" space in %d--" % ordnum)
4 голосов
/ 08 февраля 2011

% 20 должен выглядеть как %% 20, когда средство форматирования Python видит его.Для Python %% форматируется в%.

1 голос
/ 08 февраля 2011
>>> import urllib
>>> unquoted = urllib.unquote("%20space%20in%20%d--")
>>> ordnum = 15
>>> print unquoted % ordnum
 space in 15--
0 голосов
/ 08 февраля 2011

Я вижу три способа решения этой проблемы:

  1. Сбежать % .

    "%%%20dogs" % 11
    
  2. Использоватьновый синтаксис .format .

    "{}%20dogs".format(11)
    
  3. Используйте знак + вместо % 20 , так как я думаю, что это возможно.

    "%+dogs" % 11
    
...