PY:Url编码没有变量名

时间:2009-03-04 04:23:37

标签: python

在python中有没有办法在没有变量名的情况下对url进行编码? 例如
q = ['with space1','with space2']
成 qescaped = ['with%20space1','with%20space2']

2 个答案:

答案 0 :(得分:7)

您可以将urllib.quotemap一起使用:

import urllib
q = ['with space1', 'with space2']
qescaped = map(urllib.quote, q)

答案 1 :(得分:0)

现在列表理解是Pythonic的方法:

q = [ 'with space1', 'with space2' ]
qescaped = [ urllib.quote(u) for u in q ]

通常你甚至不需要构建那个列表,而是可以使用生成器本身:

qescapedGenerator = (urllib.quote(u) for u in q)

(这可以节省内存,如果你不需要所有元素,也可以节省计算时间。)

许多接收器也可以在发生器上处理:

urlsInLines = '\n'.join(urllib.quote(u) for u in q)

for escapedUrl in (urllib.quote(u) for u in q):
    print escapedUrl

如果任何接收都需要一个列表,那么只需将list()放在生成器周围就可以创建列表。