IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Ecrire les éléments d'un dictionnaire dans un fichier excel [Python 3.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Concepteur de systèmes électroniques embarqués
    Inscrit en
    Février 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Concepteur de systèmes électroniques embarqués
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2018
    Messages : 4
    Par défaut Ecrire les éléments d'un dictionnaire dans un fichier excel
    Bonjour à tous,
    Avant tout je précise que je suis un grand débutant en Python, POO &co.

    Je souhaite écrire les éléments d'un dictionnaire dans un tableur excel sous la forme suivante en mettant chaque clé/valeur dans une case distincte
    key1 key2 key3 …
    value1 value2 value3 …
    J'ai réussi avec le code suivant (j'utilise xlutils):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    path = ".\test.xls"
    classeur = xlwt.Workbook()
    feuille1 = classeur.add_sheet("page1")
     
    i=0
    for cle, valeur in dictionnaire.items():
        feuille1.write(0,i,cle)
        feuille1.write(1,i,valeur)
        i+=1
     
    classeur.save(path)
    Ce code fonctionne mais ne me semble pas très propre... Est ce qu'il existe un moyen d'intégrer i au for ? Par exemple un truc qui ressemblerait à ça (mais qui fonctionne ):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for cle, valeur, i in dictionnaire.items():
        feuille1.write(0,i,cle)
        feuille1.write(1,i,valeur)
    Merci à vous !

  2. #2
    Membre très actif

    Homme Profil pro
    Bidouilleur
    Inscrit en
    Avril 2016
    Messages
    721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2016
    Messages : 721
    Billets dans le blog
    1
    Par défaut enumerate
    Salut,

    En utlisant enumerate, et la bonne syntaxe, ça roule.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for i, (cle, valeur) in enumerate(dictionnaire.items()):
       ...

  3. #3
    Membre à l'essai
    Homme Profil pro
    Concepteur de systèmes électroniques embarqués
    Inscrit en
    Février 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Concepteur de systèmes électroniques embarqués
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2018
    Messages : 4
    Par défaut
    Merci bistouille !

    Pour la suite, j'ai intégré mes dictionnaires dans une liste, et j'affiche un dictionnaire par ligne dans mon excel.
    Le code ci-dessous fonctionne, est ce qu'il est propre ou est ce que je peux avoir des surprises dans certains cas ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for i, element in enumerate(liste):
        for j, (cle, valeur) in enumerate(element.items()):
            if i == 0:
                feuille1.write(i,j,cle) # On ne garde qu'une fois les clés, en 1ere ligne
            feuille1.write(i+1,j,valeur)

  4. #4
    Membre très actif

    Homme Profil pro
    Bidouilleur
    Inscrit en
    Avril 2016
    Messages
    721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Avril 2016
    Messages : 721
    Billets dans le blog
    1
    Par défaut
    Bah, ça me semble correct, quant aux surprises possibles, à part le fait que les dictionnaires ne sont pas des structures de données ordonnées, ce qui pourrait éventuellement poser un quelconque soucis, j'en vois pas.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Concepteur de systèmes électroniques embarqués
    Inscrit en
    Février 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Concepteur de systèmes électroniques embarqués
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2018
    Messages : 4
    Par défaut
    Super, merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. parcourir les éléments d'une colonne dans un fichier csv
    Par zeinab ali dans le forum Général Python
    Réponses: 9
    Dernier message: 05/12/2016, 22h10
  2. [JDOM] Récupérer les éléments d'une balise dans un fichier xml complexe avec JDOM et java
    Par thdco dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 07/03/2016, 10h47
  3. Réponses: 2
    Dernier message: 19/12/2012, 09h41
  4. Réponses: 3
    Dernier message: 08/07/2011, 16h00
  5. recuperer les valeurs d'une cellule dans un fichier excel
    Par cortex59 dans le forum Général VBA
    Réponses: 2
    Dernier message: 24/04/2008, 13h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo