Partage
  • Partager sur Facebook
  • Partager sur Twitter

Supprimer des doublons de phrases

Sujet résolu
    29 mai 2022 à 13:52:05

    Bonjour,

    J'ai un code fonctionnel qui me retourne une liste des catastrophes naturelles pour un insee donné par l'utilisateur.

    Dans la liste des catastrophes naturelles retournée, certaines s'affichent plusieurs fois (exemple avec insee = 75056 qui retourne 10 fois "Inondations et/ou Coulées de Boue").

    Pourriez-vous m'aider à supprimer les doublons svp ?

    J'ai déjà essayé avec set () mais ce n'est pas adapté au type de réponse que me retourne le code.

    Ci-joint le code utilisé.

    Cordialement,

    import json
    
    insee = input('Saisir le code INSEE de la commune : ')
    
    #def recuperer_liste_catnat():
    
    url = f'https://www.georisques.gouv.fr/api/v1/gaspar/catnat?code_insee={insee}'
    
    reponse = requests.get(url)
    
    #récupération du contenu de la page
    texte = reponse.text
    #c'est une chaine de caractères: il faut la convertir en structure JSON
    texte_json = json.loads(texte)
    
    liste_risques_catnat = texte_json['data']
     
    print("Liste des risques de catastrophes naturelles :")
       
    for item in liste_risques_catnat:
        print(item['libelle_risque_jo'])
    




    • Partager sur Facebook
    • Partager sur Twitter
      29 mai 2022 à 17:27:19

      set(item['libelle_risque_jo'] for item in liste_risques_catnat)

      -
      Edité par Nephthys 29 mai 2022 à 17:37:35

      • Partager sur Facebook
      • Partager sur Twitter
        29 mai 2022 à 21:31:36

        Bonsoir,

        Merci pour votre réponse mais je ne saisie pas bien où mettre le code que vous m'avez envoyé.

        De plus, si je remplace la fin de mon code par votre proposition je n'arrive plus à faire un print.

        Pourriez-vous être plus explicite dans votre réponse svp ?

        Cordialement,

        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          29 mai 2022 à 22:26:59

          Bonsoir,

          import json, requests
           
          insee = input('Saisir le code INSEE de la commune : ')
           
          #def recuperer_liste_catnat():
           
          url = f'https://www.georisques.gouv.fr/api/v1/gaspar/catnat?code_insee={insee}'
           
          reponse = requests.get(url)
           
          #récupération du contenu de la page
          texte = reponse.text
          #c'est une chaine de caractères: il faut la convertir en structure JSON
          texte_json = json.loads(texte)
          
          print('\n'.join(set(item['libelle_risque_jo'] for item in texte_json['data'])))

          C'est drôle dans ma commune on risque des "Chocs Mécaniques liés à l'action des Vagues", la commune touche à peine l'apex d'une ria. Je crois que le risque est assez limité sachant que 90 % des maisons de la commune se situe à 5km ^^.

          • Partager sur Facebook
          • Partager sur Twitter
            29 mai 2022 à 22:30:49

            Super, merci beaucoup pour votre réponse !

            Je vais prendre le temps de comprendre le code.

            Bonne soirée !

            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              29 mai 2022 à 23:09:16

              Re,

              set(item['libelle_risque_jo'foritem intexte_json['data'])

              C'est un peu comme la compréhension de liste mais avec un set !

              https://www.pythontutorial.net/python-basics/python-set-comprehension/

              '\n'.join()

              Permet de joindre des éléments d'une liste ou d'un set ou autre séparé par un retour à la ligne, essayez ça :

              '+'.join('1234')





              • Partager sur Facebook
              • Partager sur Twitter
                30 mai 2022 à 17:43:24

                ErispoeLeNarvalo a écrit:

                C'est drôle dans ma commune on risque des "Chocs Mécaniques liés à l'action des Vagues", la commune touche à peine l'apex d'une ria. Je crois que le risque est assez limité sachant que 90 % des maisons de la commune se situe à 5km ^^.



                le code insee ne correspond pas au code postal, c'est peut-être ça la raison https://public.opendatasoft.com/explore/dataset/correspondance-code-insee-code-postal/table/?flg=fr
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  30 mai 2022 à 18:16:38

                  J'ai tapé le code INSEE ;-), je pense que le faite d'avoir une frontière avec une ria place automatiquement la commune dans cette catégorie...
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Supprimer des doublons de phrases

                  × 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