Bonjour à tous,

Je suis loin d'être expert Python, et surtout là, je sèche complet ...
J'aurais besoin de vos yeux aiguisés pour m'aider à y voir plus clair.
Voilà mon problème intervient lorsque j'exécute ce code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
import json
 
with open('json_test.json') as json_1 :
    json_file = json.load(json_1)
 
    req_json = json_file['source']
    json_file_2 = json.loads(req_json)
 
    for i in json_file_2['ev']:
        for j in json_file_2['ev'][i] :
            print(json_file_2['ev'][i][j]['h'])
J'obtiens ça :

print(json_file_2['ev'][i][j]['h'])
KeyError: 'h'

Pourtant si je fais ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
import json
 
with open('json_test.json') as json_1 :
    json_file = json.load(json_1)
 
    req_json = json_file['source']
    json_file_2 = json.loads(req_json)
 
    for i in json_file_2['ev']:
        for j in json_file_2['ev'][i] :
            print(json_file_2['ev'][i][j])
J'obtiens ça :

{'pos': 110284, 'ver': 1.95, 'res': 0, 'lock': False, 'h': 6.5, 'p1': 428603, 'pl': 'fraises'}
{'pos': 110284, 'ver': 1.95, 'res': 0, 'lock': False, 'h': 5.5, 'p1': 317698, 'pl': 'poires'}

Et encore plus bizarre, si je fais ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
import json
 
with open('json_test.json') as json_1 :
    json_file = json.load(json_1)
 
    req_json = json_file['source']
    json_file_2 = json.loads(req_json)
 
    for i in json_file_2['ev']:
        for j in json_file_2['ev'][i] :
            print(json_file_2['ev'][i][j]['pos'])
J'obtiens la liste des 'pos'.
Si je remplace 'pos' par 'ver' ça fonctionne également, tout comme pour 'res' et pour 'lock'.
Il n'y a que pour 'h', 'p1' et 'pl' qu'il me renvoie une KeyError.
Je ne sais plus quoi faire, je ne comprends absolument pas pourquoi je suis capable d'afficher les 4 premières "key" mais que les 5, 6 et 7 soient en KeyError.
Si vous aviez une petite idée je suis preneur ...

Merci