最近在使用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方法