Python 3および requests モジュール/ライブラリを使用してRESTサービスをクエリします。
リクエストはデフォルトでurlencodingにurllib.parse.quote_plus()
を使用しているようです。つまり、スペースは_+
_に変換されます。
ただし、クエリを実行するRESTサービスはこれをand
と誤解します。したがって、スペースを_%20
_としてエンコードする必要があります。つまり、代わりにurllib.parse.quote()
を使用します。
リクエストでこれを行う簡単な方法はありますか?ドキュメントにオプションが見つかりませんでした。
できることがわかりました!
from requests.utils import requote_uri
url = "https://www.somerandom.com/?name=Something Cool"
requote_uri(url)
'https://www.somerandom.com/?name=Something%20Cool'
ドキュメントはこちらrequote_uri
メソッドはページの約半分です。