替换空白

时间:2010-08-04 18:48:43

标签: python

我正在构建一个URL并用+

替换所有空格
url.replace(' ','+')

由于某种原因它没有替换任何空格!

任何人都知道出了什么问题?

3 个答案:

答案 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()。这通常比试图将字符串粘在一起更容易阅读:

+