pythonurlliburlencode

How to urlencode a querystring in Python?


I am trying to urlencode this string before I submit.

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

Solution

  • Python 3

    Use urllib.parse.urlencode:

    >>> import urllib.parse
    >>> f = { 'eventName' : 'myEvent', 'eventDescription' : 'cool event'}
    >>> urllib.parse.urlencode(f)
    eventName=myEvent&eventDescription=cool+event
    

    Note that this does not do url encoding in the commonly used sense (look at the output). For that use urllib.parse.quote_plus.

    Python 2

    You need to pass your parameters into urllib.urlencode() as either a mapping (dict), or a sequence of 2-tuples, like:

    >>> import urllib
    >>> f = { 'eventName' : 'myEvent', 'eventDescription' : 'cool event'}
    >>> urllib.urlencode(f)
    'eventName=myEvent&eventDescription=cool+event'