確かに単純なURLならそれでも動くかもしれませんが、URLエンコード(%E3%81%82 など)が含まれていたり、値が空だったりする場合、自前実装はバグの温床になります。 ここでもやはり、Python標準ライブラリ urllib.parse の出番です。
これを怠ると、サーバーは受け取ったデータを正しく解釈できず、400 Bad Requestなどを返してきます。 標準ライブラリ「urllib.parse」で解決 Pythonには、この複雑なエンコード処理を簡単に行うための標準ライブラリ urllib.parse が用意されています。