Вопрос

У меня есть список тегов, которые я хотел бы добавить в строку 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, чтобы проанализировать результаты. Если да - как я могу вставить эти теги, разделенные этим специальным знаком?


РЕДАКТИРОВАТЬ:

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

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

Это было полезно?

Решение

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'

Другие советы

"%s" это нормально, но urlparse.urlunparse после urllib.urlencode безопаснее.

str.join это нормально, но не забудьте проверить свои теги на наличие запятых и номера, или использовать urllib.quote на каждом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top