Ich versuche, eine URL zu erstellen, so dass ich eine Anfrage senden kann, die urllib
Modul verwendet.Abfragezeichenfolge mit urlencode python erstellen
Lassen Sie uns meine final_url
nehme
url = "www.example.com/find.php?data=http%3A%2F%2Fwww.stackoverflow.com&search=Generate+value"
Nun, dies zu erreichen sein sollte ich die folgende Art und Weise versucht:
>>> 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'
Jetzt können Sie Beobachter zwei Dinge, wenn Sie meine query_string
mit dem Format von final_url
vergleichen
1) Die Reihenfolge der Parameter ist umgekehrt data=()&search=
es ist search=()&data=
2) urlencode
codiert auch die +
in Generate+value
Ich glaube, die erste Änderung des zufälligen Verhaltens Wörterbuch zurückzuführen ist. Also, ich benutze OrderedDict
to reverse the dictionary. Wie ich python 2.6.5
verwende habe ich
pip install ordereddict
Aber ich bin nicht in der Lage es in meinem Code zu verwenden, wenn ich
>>> od = OrderedDict((('a', 'first'), ('b', 'second')))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'OrderedDict' is not defined
So versuche, meine Frage ist, was ist der richtige Weg OrderedDict
zu verwenden, in Python 2.6.5 und wie mache ich urlencode
ignoriert die +
in Generate+value
.
Auch ist dies der richtige Ansatz, URL
zu bauen.
Ich versuchte 'von Sammlungen importieren OrderedDict', aber jetzt bekomme ich' ImportError: kann Name OrderedDict' nicht importieren. Ich benutze Python '2.6.5' – RanRag
Es sollte von PYTON 2.4 zur Verfügung stehen. Was bekommen Sie, wenn Sie 'Importsammlungen' ausführen? –
Ich kann die Sammlung erfolgreich importieren, es wird kein Fehler ausgegeben. Ich habe 'OrderedDict' von Python 2.7 an eingeführt. – RanRag