PY: Url Encode без имени переменной - PullRequest
3 голосов
/ 04 марта 2009

Есть ли в python способ кодировать список URL без имен переменных? например
q = ['with space1', 'with space2']
в qescaped = ['with% 20space1', 'with% 20space2']

Ответы [ 2 ]

7 голосов
/ 04 марта 2009

Вы можете использовать urllib.quote вместе с map :

import urllib
q = ['with space1', 'with space2']
qescaped = map(urllib.quote, q)
0 голосов
/ 06 декабря 2012

В настоящее время списочные представления - это 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)

1012 *

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

И если любому получателю нужен список, в конце концов, просто поместив list() вокруг генератора, все равно создайте список.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...