761 Stimmen

Wie kann man einen Querystring in Python urlencodieren?

Ich versuche, diese Zeichenfolge vor dem Absenden zu verschlüsseln.

queryString = 'eventName=' + evt.fields["eventName"] + '&' + 'eventDescription=' + evt.fields["eventDescription"];

27voto

Charlie Punkte 8006

Versuchen Sie dies:

urllib.pathname2url(stringToURLEncode)

urlencode funktioniert nicht, weil es nur bei Wörterbüchern funktioniert. quote_plus erzeugte nicht die richtige Ausgabe.

22voto

user411279 Punkte 667

Beachten Sie, dass urllib.urlencode nicht immer den gewünschten Erfolg bringt. Das Problem ist, dass einige Dienste auf die Reihenfolge der Argumente achten, was bei der Erstellung des Wörterbuchs verloren geht. Für solche Fälle ist urllib.quote_plus besser geeignet, wie Ricky vorgeschlagen hat.

15voto

Mazen Aly Punkte 4865

In Python 3 funktionierte dies bei mir

import urllib

urllib.parse.quote(query)

7voto

Luqman Punkte 117
import urllib.parse
query = 'Hellö Wörld@Python'
urllib.parse.quote(query) // returns Hell%C3%B6%20W%C3%B6rld%40Python

6voto

nickanor Punkte 607

Für zukünftige Referenzen (z.B. für Python3)

>>> import urllib.request as req
>>> query = 'eventName=theEvent&eventDescription=testDesc'
>>> req.pathname2url(query)
>>> 'eventName%3DtheEvent%26eventDescription%3DtestDesc'

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X