Bonsoir à tous,

Je poste ici ce tout premier message (étant un gros noob du python) car je suis témoin d'un drôle de comportement lorsque j'utilise la fonction urllib.urlencode du module urllib.

Version de Python : Python 2.6.6

D'aprés la doc officielle : "The order of parameters in the encoded string will match the order of parameter tuples in the sequence."

Pourtant voici ce que je constate sans bien comprendre...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
>>> url_password = {'pwd_field' : 'PASSWORD', 'login_field' : 'USERNAME'}
>>> urllib.urlencode(url_password)
'pwd_field=PASSWORD&login_field=USERNAME'
>>>
>>> url_password = {'login_field' : 'USERNAME', 'pwd_field' : 'PASSWORD'}
>>> urllib.urlencode(url_password)
'pwd_field=PASSWORD&login_field=USERNAME'
Je ne comprends pas pourquoi les champs ne respecte pas l'ordre des paramètres définis dans la variable url_password.
Avez-vous ce même comportement ? Savez-vous l'expliquer ? Je vais essayer de réaliser le test sur une VM pour creuser cette histoire... même comportement....

Par contre, en agençant les paramètres de cette manière celà marche comme attendu...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
>>> url_password=[('login_field','USERNAME'), ('pwd_field','PASSWORD')]
>>> urllib.urlencode(url_password)
'login_field=USERNAME&pwd_field=PASSWORD'

Merci d'avance pour vos réponses !

Cordialement.