最近在使用Python中Request库的时候,很多小朋友问post请求中data和json的区别:
假如我们请求的body是json方式,请求的数据为payload
payload = {'key1': 'value1', 'key2': 'value2'}
如果是低版本的Requests的话,我们只有使用导入json来把字典dict转化成json:
import json
url = 'https://api.github.com/some/endpoint'
payload = {'some': 'data'}
r = requests.post(url, data=json.dumps(payload))
此处除了可以自行对 dict
进行编码,你还可以使用 json
参数直接传递,然后它就会被自动编码。这是 2.4.2 版的新加功能:
url = 'https://api.github.com/some/endpoint'
payload = {'some': 'data'}
r = requests.post(url, json=payload)
总结一下:
data:可以使用text方式和json方式(json需要转换)
json:只能使用json方法