Drop Down MenusCSS Drop Down MenuPure CSS Dropdown Menu

公開日 : 2018-03-10

Python requestsでrequest bodyがJSON形式のデータを送信する方法

このエントリーをはてなブックマークに追加
Pythonで、requestsを利用している際に、request bodyがJSON形式のデータを送信したかった。その際にはまったことの忘備録。





やりたかったことは、Microsoft Face APIを、Python上で利用したかった。

{"error":{"code":"BadArgument","message":"Request body is invalid."}}

というエラーが出てきてしまって、うまくいかなかった。

原因


JSON形式でrequest bodyを送信できていなかった。元のコードは、

    end_point = BASE_URL + "persongroups/" + GROUP_NAME
    payload = {
        "name": GROUP_NAME
    }
    headers = {
        "Ocp-Apim-Subscription-Key" :SUBSCRIPTION_KEY
    }
    r = requests.put(
        end_point,
        headers = headers,
        params = payload
    )

こんな感じで書いていたんだけど、JSONの処理がされていなかった。
requests.putのdictにparamsではなく、jsonを指定してあげれば解決した。

 end_point = BASE_URL + "persongroups/" + GROUP_NAME
    payload = {
        "name": GROUP_NAME
    }
    headers = {
        "Ocp-Apim-Subscription-Key" :SUBSCRIPTION_KEY
    }
    r = requests.put(
        end_point,
        headers = headers,
        json = payload
    )

こんな感じに治してあげたら治った。

参考
https://stackoverflow.com/questions/40354658/microsoft-face-api-verify-for-python

スポンサーリンク