Partage
  • Partager sur Facebook
  • Partager sur Twitter

mise en page csv

    26 avril 2021 à 17:35:36

    hello à tous, est ce que vous savez come utiliser les clefs d'un dictionnaire pour l'enregistrement dans un fichier csv?
    • Partager sur Facebook
    • Partager sur Twitter
      26 avril 2021 à 17:53:10

      Salut,

      Il nous faut un peu plus de détails...

      Que veux-tu enregistrer dans ton CVS ? Les clés, les valeurs, les deux ?

      • Partager sur Facebook
      • Partager sur Twitter
        27 avril 2021 à 10:30:59

        les clés en principe correspondent aux intitulés des champs (l'entête des colonnes)

        • Partager sur Facebook
        • Partager sur Twitter
          27 avril 2021 à 17:21:45

          en gros, j'enregistre chaque livre scraper dans un dictionnaire, et ensuite enregistrer ce dictionnaire dans un fichier psd, or à ce jours chaque livre s'enregistre bien dans mon csv MAIS avec les clefs à chaque foi, or j'aimerai bien que ces clefs ne s'affiche pas mais enregistre leurs info respectives dans les colones
          • Partager sur Facebook
          • Partager sur Twitter
            27 avril 2021 à 18:10:03

            montre ton code, Le mieux, je pense serait d'utiliser DictWriter (comme l'a déjà proposé thelinekioubeur, en passant dans le paramètre fieldnames, les clés de ton dictionnaire
            • Partager sur Facebook
            • Partager sur Twitter
              27 avril 2021 à 19:37:19

              mon code d'enregistrement:

              with open("données_scrapées/" + key + ".csv", "a", newline='') as données:
              # données.write(
              # product_page_url + ',' + title + ',' + product_description + ',' + image_url + ',' + upc + ',' + product_type + ',' + price_exclu_tax + ',' + price_including_tax + ',' + number_available + ',' + review_rating + '\n')
              for url in urls_1_cathe:
              info_livre = recup_info_1livre(urls_1_cathe) # product_page_url + title + product_description + image_url + upc + product_type + price_exclu_tax + price_including_tax + number_available + review_rating
              # données.write(product_page_url + ',' + title + ',' + product_description + ',' + image_url + ',' + upc + ',' + product_type + ',' + price_exclu_tax + ',' + price_including_tax + ',' + number_available + ',' + review_rating + '\n')
              données.write(str(info_livre))
              • Partager sur Facebook
              • Partager sur Twitter
                28 avril 2021 à 11:33:54

                info_livre c'est un dictionnaire ou une chaine qui contient ce qui est mis en commentaire ?

                la dernière ligne est au même niveau d'indentation que info_livre = ... ? (utilise la bouton </> pour insérer ton code)

                là en fait, tu fais une écriture classique en fin de fichier (ouverture en "append" et pas d'utilisation du module csv), ce qui suppose que les entêtes ont  été écrites avant.

                Il faut aussi supposé qu'il n'y a pas de virgule dans un des champs.

                • Partager sur Facebook
                • Partager sur Twitter
                  28 avril 2021 à 14:56:23

                  d'accord, du coup tu me conseil de passer de "a" à "w" pour le mode d'écriture?
                  • Partager sur Facebook
                  • Partager sur Twitter
                    28 avril 2021 à 15:21:33

                    for key in info_livre:
                        données.write(f"{info_livre[key]}\n")

                    Si des soucis,

                    • Montre ton code dans les balises adaptées avec l'indentation correcte
                    • Évite les accents dans les noms de variable
                    • Fait un print info_livre pour qu'on puisse se le représenter
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
                    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

                      28 avril 2021 à 15:54:04

                      MwenLà a écrit:

                      d'accord, du coup tu me conseil de passer de "a" à "w" pour le mode d'écriture?


                      Tout dépend de ce que tu veux faire, "w" écrase le fichier, "a" ajoute la fin.
                      Tu n'as pas répondu aux autres questions (qui sont plus importante pour le moment) sur la nature de info_livre (le print demandé par fred1599 par exemple)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        4 mai 2021 à 19:02:43

                        cathegories = recup_liens_cathegori_menu(url_principale)
                        for key in cathegories:
                        urls_1_cathe = recup_url_1cathegorie(cathegories[key])
                        # print(urls_1_cathe)
                        with open("données_scrapées/" + key + ".csv", "a", newline='') as données:
                        données.write("product_page_url , title , product_description , image_url , upc , product_type , price_exclu_tax , price_including_tax , number_available , review_rating" )
                        for url in urls_1_cathe:
                        info_livre = recup_info_1livre(url) # product_page_url + title + product_description + image_url + upc + product_type + price_exclu_tax + price_including_tax + number_available + review_rating
                        print(info_livre)
                        données.write(str(info_livre["product_page_url"]) + ',' + str(info_livre["title"]) + ',' + str(info_livre["product_description"]) + ',' + str(info_livre["image_url"]) + ',' + str(info_livre["upc"]) + ',' + str(info_livre["product_type"]) + ',' + str(info_livre["price_exclu_tax"]) + ',' + str(info_livre["price_including_tax"]) + ',' + str(info_livre["number_available"]) + ',' + str(info_livre["review_rating"]) + '\n')
                        données.write(str(info_livre))
                        • Partager sur Facebook
                        • Partager sur Twitter
                          5 mai 2021 à 11:28:20

                          et ça fonctionne ? ça ne fonctionne pas ?
                          • Partager sur Facebook
                          • Partager sur Twitter
                            5 mai 2021 à 15:35:55

                            Oui ca fonctionne la seul cjose c'est que ca enregistre chaque dico avec leurs clef et moi je voulai enregistrer les données des clefs.dans des comonnes mise en page
                            • Partager sur Facebook
                            • Partager sur Twitter
                              6 mai 2021 à 12:15:12

                              on en revient donc au l'utilisation du module csv et de sa fonction DictWriter, cf le lien donné plus haut par thelinekioubeur
                              • Partager sur Facebook
                              • Partager sur Twitter

                              mise en page csv

                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                              • Editeur
                              • Markdown