POSTリクエストでデータを送信 - requests
POSTとdata
Pythonのrequestsモジュールを使用したPOSTリクエスト送信時にデータも一緒に送信したい場合がある
postメソッドの引数の
data
json
のどちらかに送信したいデータのdictを渡す
dataに渡したdictはリクエスト送信時に自動的にエンコードされる。また、ヘッダーのContent-Type が application/x-www-form-urlencoded の時は URL エンコードして送ったほうがいいらしい(dataにdictをそのまま渡す)
例
>>> import requests >>> payload = {"key1": "value1", "key2": "value2"} >>> r = requests.post("http://example", data=payload) >>> r = requests.post("http://example", json=payload)
もし、エンコードしていないデータを送りたい場合(dictではなく、stringで送信)**
json#dumps()したものをdataに渡す
>>> import json >>> import requests >>> url = 'https://api.github.com/some/endpoint' >>> payload = {'some': 'data'} >>> r = requests.post(url, data=json.dumps(payload))