我正在用 Python 做一些事情,我需要从 URL 中的空格 %20 中转义。例如:
"%20space%20in%20%d--" % ordnum
所以我需要使用 %20 作为 URL,然后使用 %d 作为数字。但我得到这个错误:
TypeError: not enough arguments for format string
我知道问题出在哪里,我只是不知道如何摆脱 %20 并修复它。
我正在用 Python 做一些事情,我需要从 URL 中的空格 %20 中转义。例如:
"%20space%20in%20%d--" % ordnum
所以我需要使用 %20 作为 URL,然后使用 %d 作为数字。但我得到这个错误:
TypeError: not enough arguments for format string
我知道问题出在哪里,我只是不知道如何摆脱 %20 并修复它。
一种方法是将%
字符加倍:
"%%20space%%20in%%20%d--" % ordnum
但可能更好的方法是使用urllib.quote_plus()
:
urllib.quote_plus(" space in %d--" % ordnum)
当 Python 的格式化程序看到 %20 时,它应该看起来像 %%20。对于 Python,%% 格式化为 %。
>>> import urllib
>>> unquoted = urllib.unquote("%20space%20in%20%d--")
>>> ordnum = 15
>>> print unquoted % ordnum
space in 15--
我看到了解决这个问题的三种方法:
转义%。
"%%%20dogs" % 11
使用新的.format语法。
"{}%20dogs".format(11)
使用 + 符号而不是%20,因为我认为这也是可能的。
"%+dogs" % 11