requests でシリアライズ化されたJSONを送信する時のポカミス
テーマ
requests モジュールでPOSTリクエストを送る時の json
/ data
パラメータの違い
- 下記ページの補完内容
- https://2.python-requests.org/en/master/user/quickstart/#more-complicated-post-requests
- 上記ドキュメントを見れば、ソースを見る必要は無かった...
まとめ
json
文字列をPOSTリクエストとして送信したいとき
関連情報
requests.models.PreparedRequest.prepared_body
が処理内容- ドキュメントに記載されている通りの処理
お茶目な失敗例
JSONにシリアライズ化したオブジェクトを送りたいと思いつつ、 下記のようなことをやってしまっていたのが、今回調べた理由...
import json import requests target = {"key": "value"} # dataに辞書型を渡したときにに、JSONではなく、``form-encoded`` となる requests.post("http://localhost", data=target) # 文字列として送信されてしまう requests.post("http://localhost", json=json.dumps(target))
可愛い失敗でした。 てへぺろ。