从HTML中转义%20
我正在用Python做一个项目,我需要处理URL中的%20,也就是空格的意思。例如:
"%20space%20in%20%d--" % ordnum
所以我需要在URL中使用%20,但在数字中使用%d。不过我遇到了这个错误:
TypeError: not enough arguments for format string
我知道问题出在哪里,只是不知道怎么处理%20来解决这个问题。
4 个回答
1
在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。比如说,有人可能会在使用一个叫做“库”的东西时,发现它没有按照预期工作。这种情况可能会让人感到困惑,因为我们不知道问题出在哪里。
通常,解决这些问题的方法是仔细检查代码,看看有没有写错的地方,或者有没有遗漏什么重要的步骤。很多时候,问题可能是因为我们没有正确理解这个库的用法,或者没有按照它的要求来使用它。
在这种情况下,向其他人请教也是一个好主意。我们可以去一些技术论坛,比如StackOverflow,看看有没有人遇到过类似的问题,或者直接问问其他开发者,看看他们有什么建议。
总之,遇到问题时,不要着急,慢慢分析,查找资料,向他人请教,通常都能找到解决办法。
>>> import urllib
>>> unquoted = urllib.unquote("%20space%20in%20%d--")
>>> ordnum = 15
>>> print unquoted % ordnum
space in 15--
4
%20在Python的格式化工具看来应该是%%20。对Python来说,%%会被格式化成%。
6
一种方法是把 %
字符加倍:
"%%20space%%20in%%20%d--" % ordnum
但可能更好的方法是使用 urllib.quote_plus()
:
urllib.quote_plus(" space in %d--" % ordnum)