814 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"];

5voto

Natesh bhat Punkte 9865

Wenn urllib.parse.urlencode( ) Fehler verursacht, versuchen Sie das Modul urllib3.

El Syntax ist wie folgt:

import urllib3
urllib3.request.urlencode({"user" : "john" })

5voto

bschlueter Punkte 3362

Für die Verwendung in Skripten/Programmen, die sowohl Python 2 als auch 3 unterstützen müssen, bietet das Modul six die Funktionen quote und urlencode:

>>> from six.moves.urllib.parse import urlencode, quote
>>> data = {'some': 'query', 'for': 'encoding'}
>>> urlencode(data)
'some=query&for=encoding'
>>> url = '/some/url/with spaces and %;!<>&'
>>> quote(url)
'/some/url/with%20spaces%20and%20%25%3B%21%3C%3E%26'

1voto

Joseph Punkte 45

Ein weiterer Punkt, der vielleicht noch nicht erwähnt wurde, ist, dass urllib.urlencode() kodiert leere Werte im Wörterbuch als die Zeichenkette None anstatt diesen Parameter als abwesend zu kennzeichnen. Ich weiß nicht, ob dies typischerweise erwünscht ist oder nicht, aber es passt nicht zu meinem Anwendungsfall, daher muss ich verwenden quote_plus .

0voto

cryptoKTM Punkte 2139

Für Python 3 urllib3 ordnungsgemäß funktioniert, können Sie wie folgt vorgehen offizielle Dokumente :

import urllib3

http = urllib3.PoolManager()
response = http.request(
     'GET',
     'https://api.prylabs.net/eth/v1alpha1/beacon/attestations',
     fields={  # here fields are the query params
          'epoch': 1234,
          'pageSize': pageSize 
      } 
 )
response = attestations.data.decode('UTF-8')

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