Domanda

Ho una lista di tag che vorrei aggiungere a una stringa URL, separati da virgole ( '% 2C'). Come posso fare questo ? Stavo cercando:

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

ma ha ricevuto un generatore:

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

Inoltre ho bisogno di cambiare le virgole per %2C? Ho bisogno di feedpaarser ai risultati analizzare. Se sì -? Come posso inserire i tag separati da questo segno speciale


EDIT:

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

ma posso sfuggire a questa %2C? Anche io sono abbastanza sicuro che ci sia un modo più breve 'lambda':)

È stato utile?

Soluzione

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

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

Nota a margine:
Andando avanti Penso che si desidera utilizzare format() per la stringa di interpolazione, per esempio:

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

Altri suggerimenti

"%s" va bene, ma dopo urlparse.urlunparse urllib.urlencode è più sicuro.

str.join va bene, ma ricordatevi di controllare i tag per le virgole e segni numero o usate urllib.quote su ciascuno di essi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top