I\'m building an \"API API\", it\'s basically a wrapper for a in house REST web service that the web app will be making a lot of requests to. Some of the web service calls need
Is urllib.urlencode() not enough?
>>> import urllib
>>> urllib.urlencode({'foo': 'bar', 'bla': 'blah'})
foo=bar&bla=blah
EDIT:
You can also update the existing url:
>>> import urlparse, urlencode
>>> url_dict = urlparse.parse_qs('a=b&c=d')
>>> url_dict
{'a': ['b'], 'c': ['d']}
>>> url_dict['a'].append('x')
>>> url_dict
{'a': ['b', 'x'], 'c': ['d']}
>>> urllib.urlencode(url_dict, True)
'a=b&a=x&c=d'
Note that parse_qs function was in cgi package before Python 2.6
EDIT 23/04/2012:
You can also take a look at python-requests - it should kill urllibs eventually :)
import urllib
data = {}
data["val1"] = "VALUE1"
data["val2"] = "VALUE2"
data["val3"] = "VALUE3"
url_values = urllib.urlencode(data)
url = "https://www.python.org"
print url + "?" + url_values
The url_values is an encoded values and can be used to post to the server along with url as a query string(url+"?"+url_values).
urllib.urlencode
And yes, the urllib / urllib2 division of labor is a little confusing in Python 2.x.