CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Python] Liste de dictionaries vers csv

Cykq
Cykq
Niveau 4
27 janvier 2020 à 12:53:56

Bonjour, voici une partie de mon code, j'aimerais stocker ces dictionaires sur fichier csv et l'ouvrir avec excel, le probleme c'est que tout se stock dans une seule colonne, donc la cellule A1 contient tout les noms des keys(Nom, Prenom, Age, Sexe etc..) et les lignes suivantes contiennent les valeurs de ces clés mais toutes dans la 1ere colonne.

import csv
import pickle

filename = "test.csv"
fields = ['Nom', 'Prénom', 'Age', 'Sexe', 'Date', 'Mail', 'Tel']

with open('liste', 'rb')as g:
liste = pickle.load(g)

with open(filename, 'w') as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=fields)
writer.writeheader()
writer.writerows(liste)

darkepsylon
darkepsylon
Niveau 10
27 janvier 2020 à 13:37:01

Je connais pas trop le python mais tu as un bon exemple ici : https://www.tutorialspoint.com/How-to-save-a-Python-Dictionary-to-CSV-file

Azerban
Azerban
Niveau 16
27 janvier 2020 à 14:02:03

Rajoute le paramètre newline dans ton deuxième open :

with open(filename, 'w', newline='') as csvfile:
    writer = csv.DictWriter(csvfile, fieldnames=fields)
    writer.writeheader()
    writer.writerows(liste)

Si ça ne fonctionne pas essaie d'écrire les lignes une par une:

with open(filename, 'w', newline='') as csvfile:
    writer = csv.DictWriter(csvfile, fieldnames=fields)
    writer.writeheader()
    for line in liste:
        writer.writerow(line)
Cykq
Cykq
Niveau 4
27 janvier 2020 à 14:07:43

Je teste ça en rentrant

Cykq
Cykq
Niveau 4
27 janvier 2020 à 15:37:56

Ca fonctionne pas, tout se met dans la colonne A :/

JeRespireLeVent
JeRespireLeVent
Niveau 10
27 janvier 2020 à 15:55:12

Il faut séparer chaque donnée par un ";" pour changer de colonne.

Enfin, si j'étais toi j'ecrirais mon csv comme un fichier texte classique

Message édité le 27 janvier 2020 à 15:56:50 par JeRespireLeVent
Azerban
Azerban
Niveau 16
27 janvier 2020 à 22:24:03

À mon avis le problème vient de la manière dont sont agencées les données dans ta variable liste. Effectivement comme l'a dit mon VDD, il n'y a peut être pas de séparateur. Essaie de poster un extrait de ta variable liste.

Fais un :

print(liste)

après ton picke.load et montre nous le résultat.

Sous forums
  • Aide à l'achat Mac
  • Steam Deck
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Macintosh
  • Hardware
La vidéo du moment