Site de référence: [Introduction à Python] Comment analyser JSON
JSON est un format de données utilisé lors de l'échange de données dans une application Web. JSON est une notation conçue pour être utilisée à la fois par les humains et les ordinateurs, mais elle est difficile à lire telle quelle lorsque la quantité de données est importante et il est nécessaire de l'analyser (analyser) dans une certaine mesure. Donc cette fois, je vais vous expliquer comment analyser JSON en Python.
Dans cet article, nous utiliserons un fichier json appelé "test.json" comme exemple.
test.json
{
"book1":{
"title":"Python Beginners",
"year": 2005 ,
"page": 399
},
"book2":{
"title": "Python Developers",
"year": 2006 ,
"page": 650
},
"book3":{
"title":"Python cookbook",
"year": 2002 ,
"page": 344
},
"book4":{
"title": "Python Dictionary",
"year": 2012 ,
"page": 1024
}
}
Pour analyser les données JSON en Python, vous devez d'abord lire les données JSON sous forme de dictionnaire. Il existe deux méthodes principales pour lire les données JSON.
Il s'agit d'une méthode pour lire les données enregistrées sous forme de fichier JSON. Utilisez la fonction de chargement du module json pour charger les données.
import json #Doit être requis
Variable 1= open("Chemin du fichier JSON à lire", ‘r’)
Variable 2= json.load(Variable 1)
Tout d'abord, le fichier JSON est ouvert avec la fonction open de la même manière qu'un fichier normal ouvert. Ensuite, vous pouvez lire le fichier JSON en passant la variable de fichier du fichier JSON ouvert à l'argument de json.load. Le fichier JSON chargé par la fonction de chargement est enregistré sous forme de dictionnaire.
import json
f = open('test.json', 'r')
json_dict = json.load(f)
print('json_dict:{}'.format(type(json_dict)))
Résultat d'exécution
json_dict:
Une autre façon de lire les données JSON consiste à convertir une chaîne au format JSON en dictionnaire. Le module Json se charge pour la conversion des chaînes de format JSON Utilisez une fonction. C'est similaire à la fonction de chargement, alors ne vous trompez pas.
import json
Variable 1= json.loads(Variable 2) #Variable 2はJSON形式の文字列
Si vous passez une chaîne au format JSON en tant qu'argument, la fonction de chargement la convertit en un type de dictionnaire et la renvoie.
import json
json_str = '''
{
"test":"json",
"test2":"json2"
}
'''
json_dict = json.loads(json_str)
print('json_dict:{}'.format(type(json_dict)))
Résultat d'exécution
json_dict:
Vous pouvez charger des données à partir d'un fichier JSON à l'aide de la fonction de chargement, mais il y a un problème si vous le chargez tel quel. C'est parce que les types de dictionnaires Python ne conservent pas leur ordre, donc chaque fois que vous lisez un fichier JSON normalement, l'ordre devient dans le désordre. Pour éviter cela, utilisez l'option "object_pairs_hook" de load.
import json
json_str = '''
{
"test":"json",
"test2":"json2"
}
'''
json_dict = json.loads(json_str)
print('json_dict:{}'.format(type(json_dict)))
Résultat d'exécution
json_dict:
En Python, il existe un type appelé "OrderedDict" qui est un type de dictionnaire qui enregistre dans l'ordre. En spécifiant "collections.OrderedDict" dans l'option "object_pairs_hook" lors du chargement de JSON avec la fonction de chargement, les données JSON sont chargées en tant que type OrderedDict, de sorte qu'elles peuvent être chargées dans l'ordre.
Après avoir lu le JSON, il est temps d'analyser les données JSON. Lors de l'analyse des données JSON, il est nécessaire d'extraire les données nécessaires des données JSON, mais en fait, JSON est traité comme un type de dictionnaire en Python, il peut donc être traité de la même manière qu'un type de dictionnaire.
import json
f = open('test.json', 'r')
json_dict = json.load(f)
print('Informations sur le livre1:{}'.format(json_dict['book1']))
print('Nombre de pages dans le livre3:{}'.format(json_dict['book3']['page']))
Résultat d'exécution
Informations Book1: {‘title’: ‘Python Beginners’, ‘year’: 2005, ‘page’: 399} Nombre de pages dans le livre3: 344
Dans cet exemple, la valeur est récupérée en spécifiant la clé comme un type de dictionnaire normal. Vous pouvez également utiliser des méthodes de type dictionnaire ou itate avec une instruction for, afin de pouvoir récupérer les données à votre guise.
import json
f = open('test.json', 'r')
json_dict = json.load(f)
for x in json_dict:
book_page = json_dict[x]['page']
if(book_page >= 500):
print('{0}:{1}'.format(x, json_dict[x]))
Résultat d'exécution
book4:{‘page': 1024, ‘year': 2012, ‘title': ‘Python Dictionary’} book2:{‘page': 650, ‘year': 2006, ‘title': ‘Python Developers’}
Dans cet exemple, seuls ceux avec [page] de 500 ou plus sont extraits des données JSON. Dans le cas de Python, il existe de nombreuses méthodes pratiques, vous permettant ainsi d'analyser facilement les données JSON.
Jusqu'à présent, j'ai écrit des scripts Python pour lire et analyser JSON. Cependant, il est fastidieux d'écrire un script à chaque fois juste pour afficher et analyser une petite quantité de JSON.
Dans un tel cas, Python vous permet d'afficher et d'analyser des objets JSON simples sur la ligne de commande. Vous pouvez afficher le contenu du fichier JSON sur la ligne de commande en démarrant la ligne de commande ou le terminal et en entrant ce qui suit.
python -m json.tool test.json
Résultat d'exécution
{ “book1″: { “title”: “Python Beginners”, “year”: 2005, “page”: 399 }, “book2″: { “title”: “Python Developers”, “year”: 2006, “page”: 650 }, “book3″: { “title”: “Python cookbook”, “year”: 2002, “page”: 344 }, “book4″: { “title”: “Python Dictionary”, “year”: 2012, “page”: 1024 } }
Recommended Posts