GETリクエストのパラメータの空白はそのままでいい requests - Python
requests.get()
でGETリクエストを送信するときのパラメータに空白が入るときはどうすればいいのかわからなかったが、そのまま渡していいことがわかった
import requests params = {'aaa': '111 あああ', 'bbb': '222 いいい'} res = requests.get('http://google.com', params=params)
リクエストされるURLは'http://google.com/?aaa=111+%E3%81%82%E3%81%82%E3%81%82&bbb=222+%E3%81%84%E3%81%84%E3%81%84'
となる
requestsのソースを追っていったらなんかわかった気がするからメモしておく
パラメータがエンコードされるまでのスタックトレース(下から上に呼び出している)
urlencode() urllib.parse.py:906 _encode_params() models.py:105 prepare_url() [PreparedRequest] models.py:423 prepare() [PreparedRequest] models.py:305 prepare_request() [Session] sessions.py:437 request() [Session] sessions.py:494 request() api.py:58 get() api.py:72
urllib.parse.urlencode()
が最終的に呼ばれていたため、' 'が'+'になっているということ!!あまり気にしなくても良かったのかも...