Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Ligne python 2.6 à convertir en 2.3 :(

2 réponses
Avatar
Sysadmin
Bonjour,

Un script ne fonctionne pas chez un de mes clients parce que celui-ci ne
dispose que de python 2.3.4. Impossible de lui demander la moindre
upgrade sur ce serveur de prod.

Y a-t-il ici de personnes suceptibles de me dire ce qui ne va pas ?

La ligne en question est celle-ci :
query_string = "&".join ("%s=%s" % t for t in params)

Pour un script simple qui enregistre une querystring.

La source complete :

http://pastie.org/863301

Merci d'avance à tous ceux (et celles) qui seraient suceptibles de m'aider.

2 réponses

Avatar
Alain BARTHE
Sysadmin a écrit :
Bonjour,

Un script ne fonctionne pas chez un de mes clients parce que celui-ci ne
dispose que de python 2.3.4. Impossible de lui demander la moindre
upgrade sur ce serveur de prod.

Y a-t-il ici de personnes suceptibles de me dire ce qui ne va pas ?

La ligne en question est celle-ci :
query_string = "&".join ("%s=%s" % t for t in params)

Pour un script simple qui enregistre une querystring.

La source complete :

http://pastie.org/863301

Merci d'avance à tous ceux (et celles) qui seraient suceptibles de m'aider.



Je ne suis pas certain, mais j'essaierais :

query_string = "&".join (["%s=%s" %t for t in params])


Corrigez-moi si je dis une connerie mais il me semble que la syntaxe de
ton script utilise les "generators" qui ne sont peut-être pas encore
disponible en 2.3.4.

En englobant dans [] tu créera une "liste en intentions" qui elle existe
depuis bien plus longtemps.
Avatar
danieldelay
Sysadmin a écrit :
La ligne en question est celle-ci :
query_string = "&".join ("%s=%s" % t for t in params)



Il y a une fonction faite pour ça dans urllib :

import urllib
query_string = urllib.urlencode(params)

C'est compatible python2.3, les valeurs sont encodées proprement, donc
par exemple pas de problème s'il y a un "&" dans une valeur des paires
clés/valeurs de params.
http://docs.python.org/library/urllib.html#urllib.urlencode