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

itertool & fieldstorage

5 réponses
Avatar
Sysadmin
Bonjour,

je d=E9couvre itertools et j'ai un peu de mal =E0 l'utiliser.

il y a izip, imaps ... je suis un peu perdu.

Quelqu'un sait comment combiner une liste de tuples de la forme :
[('nom','bob'),('prenom','moi'),('tel','007'),('login','python')]

vers : nom=3Dbob&prenom=3Dmoi&tel=3D007&login=3Dpython

Merci.

5 réponses

Avatar
Alain BARTHE
Sysadmin a écrit :
Bonjour,

je découvre itertools et j'ai un peu de mal à l'utiliser.

il y a izip, imaps ... je suis un peu perdu.

Quelqu'un sait comment combiner une liste de tuples de la forme :
[('nom','bob'),('prenom','moi'),('tel','007'),('login','python')]

vers : nom=bob&prenom=moi&tel7&login=python

Merci.



"&".join ("%s=%s" % t for t in liste_tuples)

Tu dois pouvoir utiliser imaps mais j'ai pas le temps de tester.
Avatar
Bruno Desthuilliers
Sysadmin a écrit :
Bonjour,

je découvre itertools et j'ai un peu de mal à l'utiliser.

il y a izip, imaps ... je suis un peu perdu.

Quelqu'un sait comment combiner une liste de tuples de la forme :
[('nom','bob'),('prenom','moi'),('tel','007'),('login','python')]

vers : nom=bob&prenom=moi&tel7&login=python



Pas besoin de itertools pour ça.

args = [('nom','bob'),('prenom','moi'),('tel','007'),('login','python')]
qs = "&".join("%s=%s" % arg for arg in args)

Attention par contre, tu a probablement intérêt à urlencoder tes arguments.
Avatar
cémoi
Sysadmin a écrit :
Bonjour,

je découvre itertools et j'ai un peu de mal à l'utiliser.

il y a izip, imaps ... je suis un peu perdu.

Quelqu'un sait comment combiner une liste de tuples de la forme :
[('nom','bob'),('prenom','moi'),('tel','007'),('login','python')]

vers : nom=bob&prenom=moi&tel7&login=python

Merci.



Si tu tiens absolument à utiliser imap, voilà un exemple fonctionnel:

ltup = [('nom','bob'),('prenom','moi'),('tel','007'),('login','python')]
'&'.join(imap('='.join, ltup))


Pour ma part je n'utilise izip, imap, ifilter, ... que lorsque j'ai
besoin de manipuler des quantités de données conséquentes.
Le reste du temps je préfère la solution de Bruno qui est plus intuitive.


Laurent
Avatar
Sysadmin
Et bien, merci à tous !

cémoi a écrit :
Sysadmin a écrit :
Bonjour,

je découvre itertools et j'ai un peu de mal à l'utiliser.

il y a izip, imaps ... je suis un peu perdu.

Quelqu'un sait comment combiner une liste de tuples de la forme :
[('nom','bob'),('prenom','moi'),('tel','007'),('login','python')]

vers : nom=bob&prenom=moi&tel7&login=python

Merci.



Si tu tiens absolument à utiliser imap, voilà un exemple fonctionne l:

ltup = [('nom','bob'),('prenom','moi'),('tel','007'),('login','python ')]
'&'.join(imap('='.join, ltup))


Pour ma part je n'utilise izip, imap, ifilter, ... que lorsque j'ai
besoin de manipuler des quantités de données conséquentes.
Le reste du temps je préfère la solution de Bruno qui est plus intu itive.


Laurent


Avatar
danieldelay
Sysadmin a écrit :
Quelqu'un sait comment combiner une liste de tuples de la forme :
[('nom','bob'),('prenom','moi'),('tel','007'),('login','python')]

vers : nom=bob&prenom=moi&tel7&login=python



from urllib import urlencode : c'est justement fait pour.


urlencode([('nom','bob'),('prenom','moi'),('tel','007'),('login','python')])