Question

J'ai une liste de tags que je voudrais ajouter à une chaîne d'URL, séparés par des virgules ( « % 2C »). Comment puis-je faire ceci ? Je tentais:

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

, mais a reçu un générateur:

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

Aussi, ne je dois changer des virgules pour %2C? J'ai besoin pour feedpaarser aux résultats parse. Si oui - comment puis-je insérer ces balises séparées par ce signe spécial


EDIT:

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

mais je peux échapper à cette %2C? Aussi je suis assez sûr qu'il ya un moyen « lambda » plus court:)

Était-ce utile?

La solution

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

Résultats dans:

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

Note Side:
À l'avenir, je pense que vous voulez utiliser format() pour l'interpolation de chaîne, par exemple:

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

Autres conseils

"%s" est très bien, mais après urlparse.urlunparse urllib.urlencode est plus sûr.

str.join est très bien, mais souvenez-vous de vérifier vos balises pour des virgules et des signes numériques ou l'utilisation urllib.quote sur chacun.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top