What is the difference between the data
and json
parameters in the Python Requests package?
It is unclear from the documentation.
Does this code:
import requests
import json
d = {'a': 1}
response = requests.post(url, data=json.dumps(d))
( note that we convert the dict
to JSON here ☝️ ! )
... do anything different than:
import requests
import json
d = {'a': 1}
response = requests.post(url, json=d)
If so, what?
Does the latter automatically set the Content-Type
HTTP header to application/json
?
To answer my own question, it appears my two examples above do the same thing and that using the json
parameter does indeed set the content-type
in the headers to application/json
. In my first example above using the data
parameter, the content-type
in the headers would need to be set manually.