Parsen eine Liste in eine URL-Zeichenfolge
-
09-10-2019 - |
Frage
Ich habe eine Liste von Tags, dass ich eine URL-Zeichenfolge hinzufügen möchte, durch Komma getrennt ( ‚% 2C‘). Wie kann ich das machen ? Ich habe versucht:
>>> tags_list
['tag1', ' tag2']
>>> parse_string = "http://www.google.pl/search?q=%s&restofurl" % (lambda x: "%s," %x for x in tags_list)
aber einen Generator erhalten:
>>> parse_string
'http://<generator object <genexpr> at 0x02751F58>'
Auch brauche ich Kommas %2C
zu ändern? Ich muss es Parse-Ergebnisse feedpaarser. Wenn ja - wie kann ich einfügen diese Tags durch dieses spezielle Zeichen getrennt
EDIT:
parse_string = ""
for x in tags_list:
parse_string += "%s," % x
aber kann ich diese %2C
entkommen? Auch bin ich ziemlich sicher, dass es eine kürzere ‚Lambda‘ Art und Weise:)
Lösung
parse_string = ("http://www.google.pl/search?q=%s&restofurl" %
'%2C'.join(tag.strip() for tag in tags_list))
Ergebnisse 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 Hinweis:
Für die Zukunft denke ich, Sie format()
für String-Interpolation, zB verwendet werden soll:
>>> 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'
Andere Tipps
"%s"
ist in Ordnung, aber urlparse.urlunparse
nach urllib.urlencode
ist sicherer.
str.join
ist in Ordnung, aber nicht vergessen, Ihre Tags für Kommas und Nummernzeichen oder die Verwendung urllib.quote
auf jedem zu überprüfen.