Разбор списка в строку URL - PullRequest
       37

Разбор списка в строку URL

1 голос
/ 21 октября 2010

У меня есть список тегов, которые я хотел бы добавить к строке URL-адреса, разделенных запятыми ('% 2C'). Как я могу это сделать ? Я пытался:

>>> tags_list
['tag1', ' tag2']
>>> parse_string = "http://www.google.pl/search?q=%s&restofurl" % (lambda x: "%s," %x for x in tags_list)

но получил генератор:

>>> parse_string
'http://<generator object <genexpr> at 0x02751F58>'

Также мне нужно изменить запятые на %2C? Мне нужно это feedpaarser для разбора результатов. Если да - как я могу вставить эти теги, разделенные этим специальным знаком?


EDIT:

parse_string = ""
for x in tags_list:
    parse_string += "%s," % x

но могу ли я избежать этого %2C? Также я уверен, что есть более короткий путь лямбда :)

Ответы [ 2 ]

4 голосов
/ 21 октября 2010
parse_string = ("http://www.google.pl/search?q=%s&restofurl" % 
               '%2C'.join(tag.strip() for tag in tags_list))

Результаты:

>>> parse_string = ("http://www.google.pl/search?q=%s&restofurl" %
...                '%2C'.join(tag.strip() for tag in tags_list))
>>> parse_string
'http://www.google.pl/search?q=tag1%2Ctag2&restofurl'

Примечание:
В дальнейшем Я думаю, вы хотите использовать format() для интерполяции строк, например:

>>> parse_string = "http://www.google.pl/search?q={0}&restofurl".format(
...                '%2C'.join(tag.strip() for tag in tags_list))
>>> parse_string
'http://www.google.pl/search?q=tag1%2Ctag2&restofurl'
1 голос
/ 21 октября 2010

"%s" в порядке, но urlparse.urlunparse после urllib.urlencode безопаснее.

str.join в порядке, но не забудьте проверить теги на запятые и цифры или использовать urllib.quote вкаждый.

...