経緯
APIを使用する際にパラメーターとして日本語を指定する必要がありました
リクエスト送信時の日本語のエンコード
日本語を載せたURLをエンコードする際はUTF-8でエンコードするのではなくパーセントURLでなければならないので、以下のような形でエンコードしてあげる必要あるみたいです。
import requests import urllib.parse parameter = urllib.parse.quote('パラメーター') url = 'https://api.url?parameter=' + parameter res = requests.get(url)
一応エンコード後のURLを確認するとパラメーターの出力結果は以下のようにパーセントエンコードになります。
%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E3%83%BC
このサイトの運営に使用しているワードプレスとかだとURLに日本語が入っていると勝手に%エンコードしてくれるのですが、pythonとかで自分で日本語の入ったリクエストを処理する場合はこんな感じでエンコードしないといけないみたいです。
関連記事:【Python】requests経由でmultipart/form-dataのデータを送信する際に認証エラーが起こった話
関連記事:【Python】requestsで画像や動画をダウンロードする方法
コメント