Une liste dans l'analyse d'une chaîne URL
-
09-10-2019 - |
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:)
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.