urllib
モジュールを使用してURLにgetリクエストを送信できるようにURLを作成しようとしています。
final_url
私がすべきだとしましょう
url = "www.example.com/find.php?data=http%3A%2F%2Fwww.stackoverflow.com&search=Generate+value"
これを達成するために、私は次の方法を試しました。
>>> initial_url = "http://www.stackoverflow.com"
>>> search = "Generate+value"
>>> params = {"data":initial_url,"search":search}
>>> query_string = urllib.urlencode(params)
>>> query_string
'search=Generate%2Bvalue&data=http%3A%2F%2Fwww.stackoverflow.com'
今、あなたが私query_string
のフォーマットとfinal_url
あなたのフォーマットを比較すると、2つのことを観察することができます
1)パラメータの順序が逆にdata=()&search=
なります。search=()&data=
2)urlencode
もエンコードさ+
れますGenerate+value
最初の変更は、辞書のランダムな動作によるものだと思います。だから、私OrderedDict
は辞書を逆にするために使用することを考えました。として、私は私がしたを使用しpython 2.6.5
ています
pip install ordereddict
しかし、試してみるとコードで使用できません
>>> od = OrderedDict((('a', 'first'), ('b', 'second')))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'OrderedDict' is not defined
OrderedDict
だから、私の質問は、Python 2.6.5で使用する正しい方法は何ですか、そしてどのように私はでをurlencode
無視する+
ようにするのですかGenerate+value
?
また、これはビルドするための正しいアプローチですかURL
。