我正在构建一个URL并用+
替换所有空格url.replace(' ','+')
由于某种原因它没有替换任何空格!
任何人都知道出了什么问题?
答案 0 :(得分:5)
替换功能不会就地替换任何内容 - 您需要分配它:
url = url.replace(' ','+')
答案 1 :(得分:2)
你可能还在看旧网址。 replace返回带有替换值的新字符串。尝试:
url = url.replace(' ', '+')
答案 2 :(得分:0)
除了:
如果要编码查询或路径组件以包含在URL中,则需要做的不仅仅是替换空格字符。 许多其他字符不适合未编码到URL组件中,如果您尝试,可能会破坏URL。这些必须由%nn
十六进制转义序列替换。
使用urllib
来处理URL编码,而不是尝试使用字符串方法自行完成。例如:
>>> import urllib
>>> param= 'Hello world!'
>>> url= 'http://www.example.com/script.py?a='+urllib.quote_plus(param)
>>> url
'http://www.example.com/script.py?a=Hello+world%21'
(urllib.quote_plus()
是为查询字符串中的表单参数显式设计的,因此它将+
用于空格,而不是%20
生成的urllib.quote()
。{ {1}}适用于路径组件和查询组件,因此它比%20
更安全,但在视觉上稍微混乱。)
如果您有多个参数,请在字典上使用urlencode()
。这通常比试图将字符串粘在一起更容易阅读:
+