Анализ списка в строку URL
-
09-10-2019 - |
Вопрос
У меня есть список тегов, которые я хотел бы добавить в строку 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
на каждом.