将列表解析到URL字符串中
-
09-10-2019 - |
题
我有一个想添加到commas('%2C')的URL字符串中的标签列表。我怎样才能做到这一点 ?我正在尝试:
>>> 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
?我需要它来喂食以解析结果。如果是 - 如何插入由这个特殊标志隔开的那些标签?
编辑:
parse_string = ""
for x in tags_list:
parse_string += "%s," % x
但是我可以逃脱 %2C
?我也很确定有一种较短的“ lambda”方式:)
解决方案
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
在每个。
不隶属于 StackOverflow