在python中有没有办法在没有变量名的情况下对url进行编码?
例如
q = ['with space1','with space2']
成
qescaped = ['with%20space1','with%20space2']
答案 0 :(得分:7)
您可以将urllib.quote与map一起使用:
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()
放在生成器周围就可以创建列表。