Partage
  • Partager sur Facebook
  • Partager sur Twitter

for ne regarde pas tout les value de mon dico

Sujet résolu
    26 octobre 2022 à 10:55:48

    Bonjour à tous déjà désolé pour les fautes d'orthographe

    je viens vers vous car j'écris un dico avec plusieurs valeurs à l'intérieur et je voudrais faire une sorte de foreach

    donc avec un peu de recherche j'ai trouvé que c'était juste avec for pour le code que j'ai utilisé il est juste en dessous

    for name in nom:
            for key, val in name.items():
                if (titre == val):
                    print(titre, "==", val)
                    worksheet.column_dimensions[coulum].width = key
                else:
                    print(titre, "=/=", val)
                    worksheet.delete_cols(worksheet.max_row, ii+1)

    pourtant les valeurs que mon for regarde sont un peu aléatoire comme je dirais

    tableau : 

    nom = [{MDS: "MDS / Client", ENFANT: "Enfant",
            DATE: "Date transport", ADRESSE1: "Adresse de départ", REF1: "Référent départ",
            HEUR1: "Heure de départ impérative",
            ADRESSE2: "Adresse d'arrivée", HEUR2: "Heure d'arrivée", REF2: "Référent arrivée",
            COMMENTAIRE1: "Commentaire", CHAUFFEUR: "Chauffeur", STATUT: "Statut", TEMPS: "Temps trajet (mn)", DISTANCE: "Distance (km)",
            COMMENTAIRE2: "commentaires"}]

    valeur : 

    Id. unique =/= MDS / Client
    Id. unique =/= commentaires
    Id. unique =/= Distance (km)
    Id. unique =/= Adresse d'arrivée
    Id. unique =/= Référent arrivée
    Hors marché =/= MDS / Client
    Hors marché =/= commentaires
    Hors marché =/= Distance (km)
    Hors marché =/= Adresse d'arrivée
    Hors marché =/= Référent arrivée

    comment faire pour que le for regarde absolument toutes les valeurs qui se trouvent dans mon dico

    merci à vous d'avoir lu jusque-là

    • Partager sur Facebook
    • Partager sur Twitter
      26 octobre 2022 à 12:04:58

      Bonjour,

      Comme ça, peut-être:

      nom = {MDS: "MDS / Client", ENFANT: "Enfant",
              DATE: "Date transport", ADRESSE1: "Adresse de départ", REF1: "Référent départ",
              HEUR1: "Heure de départ impérative",
              ADRESSE2: "Adresse d'arrivée", HEUR2: "Heure d'arrivée", REF2: "Référent arrivée",
              COMMENTAIRE1: "Commentaire", CHAUFFEUR: "Chauffeur", STATUT: "Statut", TEMPS: "Temps trajet (mn)", DISTANCE: "Distance (km)",
              COMMENTAIRE2: "commentaires"}
      
      for key, value in nom.items():
          print(key, value)



      • Partager sur Facebook
      • Partager sur Twitter
        26 octobre 2022 à 12:45:47

        aparament pas trop car j ai se message d erreure

        Traceback (most recent call last):
          File "d:\wamp\www\exel\test.py", line 53, in <module>
            for key, value in nom.items():
        AttributeError: 'list' object has no attribute 'items'


        j ai trouver quelque chose qui marche mais j ai toujours le meme problem 

        for key, val in nom.items():
                print(key, "=>", val)

        et le problem 

        15.77 => MDS / Client  
        20 => commentaires     
        10 => Distance (km)    
        32 => Adresse d'arrivée
        25 => Référent arrivée 

        j ai que des resultat restrin


        -
        Edité par NÉKOgrile 26 octobre 2022 à 12:56:17

        • Partager sur Facebook
        • Partager sur Twitter
          26 octobre 2022 à 13:16:50

          pour toi, ça sera 

          for name in nom:
              for key,val in name.items():
                  print(key,val)

          puisque le nom de Phil_1857 un dictionnaire alors que le tien est une liste de dictionnaire.

          Est-ce que chaque clé a des valeurs différentes et définies ?
          Est-ce que tu n'as pas inversé les clés et les valeurs ?

          • Partager sur Facebook
          • Partager sur Twitter
            26 octobre 2022 à 13:37:15

            merci mais pour le code j ai fait exactement la meme chose au debut 

            for name in nom:
                    for key, val in name.items():
                        if (titre == val):
                            print(titre, "==", val)
                            worksheet.column_dimensions[coulum].width = key
                        else:
                            print(titre, "=/=", val)
                            worksheet.delete_cols(worksheet.max_row, ii+1)

            pour les key oui il y en a qui sont le meme regarde comment je l ai est cree : 

            with open(f'{os.path.abspath( os.path.dirname( __file__ ))}\\info.json', 'r') as file:
            
                f_str = file.read()
            
                obj_python = json.loads(f_str)
            
                COMMENTAIRE2 = obj_python["COMMENTAIRE2"]
                DISTANCE = obj_python["DISTANCE"]
                TEMPS = obj_python["TEMPS"]
                STATUT = obj_python["STATUT"]
                CHAUFFEUR = obj_python["CHAUFFEUR"]
                COMMENTAIRE1 = obj_python["COMMENTAIRE1"]
                REF2 = obj_python["REF2"]
                HEUR2 = obj_python["HEUR2"]
                ADRESSE2 = obj_python["ADRESSE2"]
                HEUR1 = obj_python["HEUR1"]
                REF1 = obj_python["REF1"]
                ADRESSE1 = obj_python["ADRESSE1"]
                DATE = obj_python["DATE"]
                ENFANT = obj_python["ENFANT"]
                MDS = obj_python["MDS"]
                hauteur = obj_python["hauteur"]
            
            nom = [{
                MDS: "MDS / Client",
                ENFANT: "Enfant",
                DATE: "Date transport",
                ADRESSE1: "Adresse de départ",
                REF1: "Référent départ",
                HEUR1: "Heure de départ impérative",
                ADRESSE2: "Adresse d'arrivée",
                HEUR2: "Heure d'arrivée",
                REF2: "Référent arrivée",
                COMMENTAIRE1: "Commentaire",
                CHAUFFEUR: "Chauffeur",
                STATUT: "Statut",
                TEMPS: "Temps trajet (mn)",
                DISTANCE: "Distance (km)",
                COMMENTAIRE2: "commentaires"
            }]

            pour faire simple j ai pris des valeur d un json regarde : 

            {
                "hauteur": 80,
                "MDS": 15.77,
                "ENFANT": 20,
                "DATE": 10,
                "ADRESSE1": 32,
                "REF1": 25,
                "HEUR1": 10,
                "ADRESSE2": 32,
                "HEUR2": 10,
                "REF2": 25,
                "COMMENTAIRE1": 20,
                "CHAUFFEUR": 20,
                "STATUT": 10,
                "TEMPS": 10,
                "DISTANCE": 10,
                "COMMENTAIRE2": 20
            }



            donc oui il y a des key qui sont les meme 

            et si on peut pas avoir des key identique alors je doit inverser les key et les valeur ??? si oui tu est un genie

            • Partager sur Facebook
            • Partager sur Twitter
              26 octobre 2022 à 14:18:30

              c'est tout le problème (ou toute l'utilité d'un dictionnaire), 2 clés ne peuvent pas être identiques. la clé indique en principe un type d'info et sa valeur sa valeur (ou ensemble de valeur, liste, tuple, dictionnaire, ....) 
              Dans ton code, je ne comprends pas l'intérêt de la variable nom par rapport à obj_python qui est lui aussi un dictionnaire
              • Partager sur Facebook
              • Partager sur Twitter
                26 octobre 2022 à 14:20:35

                obj_python  sert a recupere les value dans json et je les met dans un variable mais ej vais changer les clef et les value et je vais voir$




                ok ok tout marche voila le problem il faut inverser key et val thx les gas

                -
                Edité par NÉKOgrile 26 octobre 2022 à 14:24:32

                • Partager sur Facebook
                • Partager sur Twitter
                  26 octobre 2022 à 14:27:32

                  obj_python est déjà une variable, ses clés sont celles du fichier json, pas celle que tu indiques dans nom, mais à part ça pas vraiment de différence entre les 2

                  -
                  Edité par umfred 26 octobre 2022 à 14:27:42

                  • Partager sur Facebook
                  • Partager sur Twitter
                    26 octobre 2022 à 15:30:52

                    En fait, on se demande pourquoi ton dictionnaire est une liste

                    Un dictionnaire, c'est ça:

                    dico = {cle_1:valeur_1, cle_2:valeur_2}

                    Pourquoi entourer les accolades par des crochets ? [ ]



                    • Partager sur Facebook
                    • Partager sur Twitter
                      27 octobre 2022 à 11:16:36

                      umfred a écrit:

                      obj_python est déjà une variable, ses clés sont celles du fichier json, pas celle que tu indiques dans nom, mais à part ça pas vraiment de différence entre les 2

                      -
                      Edité par umfred il y a environ 20 heures


                      merci beaucoup je prend note

                      Phil_1857 a écrit:

                      En fait, on se demande pourquoi ton dictionnaire est une liste

                      Un dictionnaire, c'est ça:

                      dico = {cle_1:valeur_1, cle_2:valeur_2}

                      Pourquoi entourer les accolades par des crochets ? [ ]

                      je sais plus pourquoi mais rien ne marche quand je le fait pas alors betement je le laisse comment ça mais merci beaucoup quand meme



                      • Partager sur Facebook
                      • Partager sur Twitter

                      for ne regarde pas tout les value de mon dico

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                      • Editeur
                      • Markdown