Побег из HTML%20

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

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

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

TypeError: not enough arguments for format string

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

4 ответа

Решение

Одним из способов было бы удвоить % персонажи:

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

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

urllib.quote_plus(" space in %d--" % ordnum)

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

>>> import urllib
>>> unquoted = urllib.unquote("%20space%20in%20%d--")
>>> ordnum = 15
>>> print unquoted % ordnum
 space in 15--

Я вижу три способа решить эту проблему:

  1. Побег %.

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

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

    "%+dogs" % 11
    
Другие вопросы по тегам