Search code examples
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

  • You need to pass your parameters into 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'
    

    Python 3 or above

    Use urllib.parse.urlencode:

    >>> 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.