convert requests.models.Response to Django HttpResponse
This should works:
from django.http import HttpResponseimport requestsrequests_response = requests.get('/some-url/')django_response = HttpResponse( content=requests_response.content, status=requests_response.status_code, content_type=requests_response.headers['Content-Type'])return django_response
To add to Brian Loughnane's answer: when I tried the solution:
for k, v in requests_response.headers.items(): django_response[k] = v
I got an error from django: AssertionError: Hop-by-hop headers not allowed
I don't know if it's the best solution but I "fixed" it by removing the offending headers.
from wsgiref.util import is_hop_by_hopfor k, v in requests_response.headers.items(): if not is_hop_by_hop(k): django_response[k] = v
This may help you :
requests.models.Response
class which,has json() method (according to the documentation) that deserializes the JSON response into a Python object using json.loads(). Try to print following and you can access whatever you are looking for.
print yourResponse.json()