1

我有一个要添加到 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吗?另外我很确定有一个更短的“lambda”方式:)

4

2 回答 2

4
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'
于 2010-10-21T05:06:53.377 回答
1

"%s"很好,但urlparse.urlunparse之后urllib.urlencode更安全。

str.join很好,但请记住检查您的标签是否有逗号和数字符号,或urllib.quote在每个标签上使用。

于 2010-10-21T08:13:27.183 回答