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