In requests, response object has PreparedRequest object and it only contains ‘raw’ post request parameters (not as dict).
import requests response = requests.post('http://google.com', data={'foo':'test', 'bar':'test'}) print(response.request) # <PreparedRequest [POST]> raw_params = response.request.body print(raw_params) # foo=test&bar=test # raw post parameters(not dict)
To parse the raw params to dict using urlparse.parse_qs method works, but it makes values to list despite a single value.
from urlparse import parse_qs params = parse_qs(raw_params) print(params) # {'bar': ['test'], 'foo': ['test'] print(params['foo']) # ['test'] # values are list
In Django, using django.http.QueryDict works fine!
from django.http import QueryDict params = QueryDict(raw_params) print params['foo'] # test # not list fine!