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:)

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top