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 :

Vérifier si un élément est présent dans un dictionnaire.


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Vérifier si un élément est présent dans un dictionnaire.
    Bonjour,

    Voila j'ai un programme en Python ou je récupère des informations sur une page web et ou je tri des éléments.

    Voici la page : http://api.wordreference.com/a7c51/json/enfr/going

    En gros j'affiche ce qu'il y a dans "FirstTranslation" et "SecondTranslation" sauf que certains mots n'ont pas de "SecondTranslation" donc quand je veux print ce "SecondTranslation" alors qu'il est vide bah j'ai une erreur ( normal ). Donc je veux faire un if qui vérifie si "SecondTranslation" existe ou pas. J'ai utilisé plusieurs méthodes mais cela ne fonctionne pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    # J'ai essayé comme ça:
    if  if i.has_key("SecondTranslation")
     
    # Comme ça
    if not ["SecondTranslation"]:
     
    # et comme ça ou sans les [] à i
    if ["SecondTranslation"] in [i]
    Et rien ne fonctionne, des idées ?
    Voici mon code pour vous aidez à comprendre.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
     
    #! /usr/bin/env python3
    # -*- coding: utf8 -*-
     
    #Import ###########################
     
    from urllib.request import urlopen
    import json
    from pprint import pprint
     
    #End Import #######################
     
    #Start Code ##################################################################
     
    verbe = input("Saisir un verbe :")
    URL = "http://api.wordreference.com/a7c51/json/enfr/" + verbe
    search = urlopen(URL)
    search.status
    assert search.status == 200
     
    content_type = search.getheader('content-type')
    print(content_type)
     
    mime_type, encoding = content_type.split(';')
    assert mime_type == 'application/json'
     
    #Le  _, est un nom de variable utilisée pour jeté une partie du résultat
    _, encoding = encoding.split('=')
     
    print(encoding)
     
    #Récupère le contenu
    content = search.read()
    assert type(content) == bytes
     
    #Décode le contenu
    text = content.decode(encoding)
    assert type(text) == str
     
    translations = json.loads(text)
     
    for key in sorted(translations):
        if not key.startswith('term'):
            continue
        principal_translations = translations[key]["PrincipalTranslations"]
        i = 0
        print ("traductions principales : \n")
        while True:
            try:
                translation = principal_translations[str(i)]
            except KeyError:
                break
            i = str(i)
            print(i +". "+ translation["OriginalTerm"]["term"] + " /" + translation["OriginalTerm"]["POS"] + "/" + " ("+ translation["OriginalTerm"]["sense"] + "):" + "\n\t" + translation["FirstTranslation"]["term"] + " /" + translation["FirstTranslation"]["POS"] + "/" + " (" + translation["FirstTranslation"]["sense"] + ")"+ "\n\t" + translation["SecondTranslation"]["term"] + " /" + translation["SecondTranslation"]["POS"] + "/" + " (" + translation["SecondTranslation"]["sense"] + ")")
            i=int(i)
            i += 1
        principal_translations = translations[key]["AdditionalTranslations"]
        i = 0
        print ("\ntraductions secondaires : \n")
        while True:
            try:
                translation = principal_translations[str(i)]
            except KeyError:
                break
            if ["SecondTranslation"] in [i]:
                i = str(i)
                print("traductions principales : \n" + i +". "+ translation["OriginalTerm"]["term"] + " /" + translation["OriginalTerm"]["POS"] + "/" + " ("+ translation["OriginalTerm"]["sense"] + "):" + "\n\t" + translation["FirstTranslation"]["term"] + " /" + translation["FirstTranslation"]["POS"] + "/" + " (" + translation["FirstTranslation"]["sense"] + ")"+ "\n\t" + translation["SecondTranslation"]["term"] + " /" + translation["SecondTranslation"]["POS"] + "/" + " (" + translation["SecondTranslation"]["sense"] + ")")
            else:
                i = str(i)
                print(i +". "+ translation["OriginalTerm"]["term"] + " /" + translation["OriginalTerm"]["POS"] + "/" + " ("+ translation["OriginalTerm"]["sense"] + "):" + "\n\t" + translation["FirstTranslation"]["term"] + " /" + translation["FirstTranslation"]["POS"] + "/" + " (" + translation["FirstTranslation"]["sense"] + ")")
            i=int(i)
            i += 1
    Merci d'avance

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 941
    Points : 1 384
    Points
    1 384
    Par défaut
    On utilise normalement "in" pour cela, mais le second opérande doit être un conteneur qui contienne potentiellement l'élément recherché, hors i est un entier, et [i] est un tableau contenant un entier...
    Ce serait plutôt qqch comme "SecondTranslation" in translation, probablement.

    Il vaudrait mieux maîtriser un peu les bases avant de vous lancer dans la manipulation de structures de données un peu complexes.

Discussions similaires

  1. Réponses: 9
    Dernier message: 06/10/2016, 21h01
  2. Réponses: 2
    Dernier message: 05/04/2016, 18h16
  3. Vérifier si une chaine est présente dans une autre
    Par Galdon dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 26/10/2008, 14h42
  4. Réponses: 11
    Dernier message: 16/12/2007, 16h33
  5. [Liste] Savoir si un élément est présent dans une liste
    Par Wookai dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 02/05/2005, 20h44

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