PY:URL编码不带变量名

3

在Python中,是否有一种方法可以对列表进行URL编码而不使用变量名称?例如:

q=['with space1', 'with space2']

转换为:

qescaped=['with%20space1', 'with%20space2']
2个回答

7
你可以使用 urllib.quotemap 一起:
import urllib
q = ['with space1', 'with space2']
qescaped = map(urllib.quote, q)

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()即可创建列表。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接