Manipuler un json avec python
Qu’est ce que JSON ?
JSON signifie for JavaScript Object Notation
JSON est un format léger pour stocker et transporter des données
JSON est souvent utilisé lorsque des données sont envoyées d’un serveur à une page Web
JSON est “auto-descriptif” et facile à comprendre
Exemple fichier json
Nous avons un fichier nommé test.json
Celui-ci contient les données suivantes:
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
[{
"id": 1,
"appName": "Bitchip",
"active": true,
"appVersion": "0.17",
"group": "Borer-Larkin",
"ipv6": "67a4:cf46:7a75:6447:292a:2590:c3ae:cea7"
}, {
"id": 2,
"appName": "Tin",
"active": true,
"appVersion": "0.7.3",
"group": "Dibbert, Fisher and Torp",
"ipv6": "1c33:7a9e:df5e:489b:ebf:abc1:3612:b467"
}, {
"id": 3,
"appName": "Ronstring",
"active": false,
"appVersion": "2.14",
"group": "Kessler Inc",
"ipv6": "65b0:7fc8:9c17:696a:d823:1ab3:bd3e:39c4"
}, {
"id": 4,
"appName": "Transcof",
"active": true,
"appVersion": "0.37",
"group": "Metz Group",
"ipv6": "63a2:c8da:2f5:7b59:d01b:a57c:32bf:f8f3"
}, {
"id": 5,
"appName": "Bigtax",
"active": true,
"appVersion": "0.22",
"group": "Johns Inc",
"ipv6": "b62b:fbe8:b9d3:8593:aa9d:502b:36cc:7bea"
}]
Types de données
JSON |
Python |
---|---|
objet |
dict |
array |
list |
string |
str |
number (nombre entier) |
int |
number (nombre réel) |
float |
true |
True |
false |
False |
null |
|
JSON dans Python
Python a un package intégré appelé json, qui peut être utilisé pour travailler avec des données JSON.
Importer le module JSON
1
import json
Parser du contenu
Si vous avez une chaîne JSON, vous pouvez l’analyser à l’aide de la méthode json.loads()
.
1
2
3
4
5
6
7
8
import json
# str
x = '{ "id": 1, "appName": "Bitchip", "active": true, "appVersion": "0.17", "group": "Borer-Larkin", "ipv6": "67a4:cf46:7a75:6447:292a:2590:c3ae:cea7" }'
y = json.loads(x)
print(y['appName'])
Lire un fichier JSON
Copier l’exemple en début de l’article dans un fichier nommé test.json
1
2
3
4
5
6
7
8
9
10
11
import json
with open('test.json') as jsonFile:
data = json.load(jsonFile)
for p in data:
print('')
print(f'nom {p["appName"]}')
print(f'active {p["active"]}')
print(f'version {p["appVersion"]}')
print(f'client {p["group"]}')
print(f'adr ipv6 {p["ipv6"]}')
Boucler sur une seule clef
Copier l’exemple plus haut dans un fichier nommé test.json
1
2
3
4
5
6
import json
with open('test.json') as jsonFile:
data = json.load(jsonFile)
for p in data:
print(p['appName'])
Modifier le contenu d’un fichier avec sauvegarde
1
2
3
4
5
6
7
8
9
10
11
import json
with open('test.json') as jsonFile:
data = json.load(jsonFile)
for p in data:
if p['active']:
print(f'active {p["appName"]}')
else:
print(f'deactivated {p["appName"]}')
p['active'] = True
json.dump(data, jsonFile)