1

I have a list of tags that I would like to add to a url string, separated by commas ('%2C'). How can I do this ? I was trying :

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

but received a generator :

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

Also do I need to change commas to %2C? I need it to feedpaarser to parse results. If yes - how can I insert those tags separated by this special sign ?


EDIT:

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

but can I escape this %2C ? Also I'm pretty sure there is a shorter 'lambda' way :)

0

2 Answers 2

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

Results in:

>>> 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'

Side note:
Going forward I think you want to use format() for string interpolation, e.g.:

>>> 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'
Sign up to request clarification or add additional context in comments.

2 Comments

I love those python one-liners :)
sometimes they're the only things getting me through the day
1

"%s" is fine, but urlparse.urlunparse after urllib.urlencode is safer.

str.join is fine, but remember to check your tags for commas and number signs, or use urllib.quote on each one.

1 Comment

so what would be the final solution ?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.