Comment analyser JSON en Python

Vous vous demandez comment analyser JSON en Python ? Vous n'êtes pas seul. Ce guide rend la lecture, l'écriture et l'analyse d'un morceau de code, euh... du gâteau.

Dans ce guide rapide, nous passons en revue les bases de l'analyse syntaxique en Python, nous expliquons ce qu'est JSON et comment les utiliser pour obtenir les données dont vous avez besoin.

Qu'est-ce que l'analyse syntaxique ?

L'analyse syntaxique consiste à convertir une séquence de caractères en un arbre syntaxique abstrait. L'analyseur syntaxique utilise ensuite cet arbre pour effectuer diverses opérations sur l'entrée, telles que la vérification de l'exactitude syntaxique ou la détermination de l'existence d'erreurs dans l'entrée.

Json Parsing From Scratch In Haskell | Abhinavsarkar.net

Le type d'analyseur le plus courant s'appelle un lexateur, qui convertit des séquences de caractères en jetons (ou "lexèmes"). Un jeton peut être tout ce qui a une signification dans votre langage : il peut s'agir d'un identifiant, d'une chaîne littérale comme "hello", ou même de quelque chose de plus complexe comme un appel de fonction. 

Après avoir converti tous les lexèmes en jetons, vous devez décider de ce qu'il adviendra d'eux une fois que votre programme les aura traités. Cette décision dépend du mode de fonctionnement de votre langage. Certains langages n'ont aucun concept de fonctions ; d'autres peuvent utiliser la récursivité et des fonctions d'ordre supérieur ; d'autres encore peuvent utiliser des fermetures ou des espaces de noms anonymes, etc. 

Vous devez également vous assurer que chaque jeton ne contient pas plus d'un caractère afin de ne pas créer accidentellement des boucles infinies lors de l'analyse.

Qu'est-ce que JSON ?

JavaScript Object Notation is a lightweight data-interchange format that describes objects – via attribute/value pairs – for data storage or transport. For example, let’s say you have a glossary on your website. JSON uses a string to define it. “title” : “example glossary”

Quels sont les principaux types de fichiers JSON ?

Il existe deux types principaux de fichiers JSON : les objets et les tableaux. L'objet est un moyen simple de stocker tout type de données, tandis que le tableau est utilisé pour stocker des objets qui contiennent d'autres objets. 

Quels sont les avantages de l'utilisation de JSON ?

Le principal avantage de l'utilisation de JSON par rapport à XML ou à d'autres formats tels que CSV ou HTML est que vous n'avez pas à vous préoccuper d'un code d'analyse spécial dans votre application. Lorsque vous utilisez JSON, vous devez inclure le fichier contenant vos données au bon endroit sur votre page, puis lire à partir de là. Cela signifie que, quel que soit le type d'appareil utilisé pour consulter votre site, les utilisateurs obtiennent toujours exactement ce que vous souhaitez obtenir.  

Qu'est-ce que Python ?

Python est un langage de programmation polyvalent que vous pouvez utiliser pour de nombreux types de projets. Il est facile à apprendre et dispose d'une multitude de bibliothèques pour vous faciliter la vie.  

Python a également une communauté active autour de lui, ce qui signifie qu'il y a beaucoup de ressources en ligne pour vous aider à démarrer.

Qu'est-ce qu'une chaîne ? 

Une chaîne de caractères est une séquence de caractères. Les caractères sont des symboles, comme des lettres ou des chiffres. Techniquement, cette phrase est donc une chaîne de caractères

Mais les ordinateurs ne lisent pas les caractères ou les symboles. Ils ne lisent que des 1 et des 0 - on et off, either or ; en d'autres termes, ils sont binaires

Même si vous voyez des caractères sur l'écran de l'ordinateur, en coulisses, les ordinateurs convertissent ou encodent les caractères en 1 et 0. L'inverse de ce processus (binaire en caractères) est appelé décodage. 

En termes simples, une chaîne Python est une séquence de caractères qui convertit les commandes humaines en langage binaire compréhensible par les ordinateurs. 

Que sont les modules en Python ? 

Les modules décomposent les grands programmes en petits fichiers gérables et organisés. En Python, ils font référence à des fichiers contenant des déclarations et des définitions Python. Un fichier contenant du code Python tel que example.py, par exemple, est un module. Le nom du module est "exemple". 

Comment analyser JSON en Python.

Vous pouvez utiliser le module JSON de Python pour travailler avec JSON (chaîne de caractères ou fichier contenant un objet JSON). Il est utile d'importer le module avant de l'utiliser.

Importer json

Le module JSON facilite l'analyse des chaînes JSON et des fichiers contenant des objets JSON.

Il existe de nombreuses façons d'analyser les mêmes informations à partir d'une chaîne de caractères formatée avec la notation d'objet JSON (ou toute autre forme). 

La méthode la plus simple consiste à utiliser la fonction intégrée "json". Elle accepte un paramètre optionnel appelé "indent" qui spécifie le niveau d'indentation à utiliser lors de l'analyse des données d'entrée. 

S'il s'agit de None, il n'y aura pas d'indentation. Sinon, il ajoutera au moins un espace avant chaque nouvelle ligne de code. 

Cette approche fonctionne bien dans les cas simples où vous souhaitez extraire une seule valeur d'une liste de valeurs ou une paire clé/valeur d'une structure de dictionnaire. 

Mais qu'en est-il si vous devez extraire plusieurs valeurs de la même structure ou si vous souhaitez analyser une chaîne JSON dans un dictionnaire Python contenant des structures imbriquées ? Dans ce cas, il est préférable d'utiliser la méthode "json.loads".

Méthode json.loads

import json
person = '{"name": "Steve", "languages": ["English", "French"]}'
person_dict = json.loads(person)
# Output: {'name': 'Steve', 'languages': ['English', 'French']}
print( person_dict)
# Output: ['English', 'French']
print(person_dict['languages'])

Ici, "personne" est une chaîne JSON et "personne_dict" est un dictionnaire.

Cette méthode renvoie toutes les clés et valeurs des données d'entrée sous forme de dictionnaires. S'il n'existe aucune clé, le système renverra None pour cette paire clé/valeur. La valeur associée à chaque paire clé/valeur est déterminée en recherchant l'entrée de son nom dans le dictionnaire.

Lecture d'un fichier JSON par Python

Vous pouvez utiliser la méthode json.load pour lire un fichier contenant un objet JSON.

{"name": "Steve", 
"languages": ["English", "French"]
}

Voici comment vous pouvez analyser ce fichier :

import json
with open('path_to_file/person.json', 'r') as f:
data = json.load(f)
# Output: {'name': 'Steve', 'languages': ['English', 'French']}
print(data)

Convertir Python en chaîne JSON

Vous pouvez convertir un dictionnaire en chaîne JSON à l'aide de la méthode json.dumps.

import json
person_dict = {'name': 'Bob',
'age': 12,
'children': None
}
person_json = json.dumps(person_dict)
# Output: {"name": "Bob", "age": 12, "children": null}
print(person_json)

Écrire JSON dans un fichier 

Pour écrire JSON dans un fichier en Python, nous pouvons utiliser la méthode json.dump().

import json
person_dict = {"name": "Steve",
"languages": ["English", "French"],
"married": False,
"age": 33
}
with open('person.txt', 'w') as json_file:
  json.dump(person_dict, json_file)

Dans le programme ci-dessus, nous avons ouvert un fichier nommé person.txt en mode écriture en utilisant "w". Si le fichier n'existe pas encore, il en crée un. Ensuite, json.dump transforme person_dict en une chaîne JSON qui est enregistrée dans le fichier person.txt.

Lorsque vous exécutez le programme, il crée le fichier person.txt. Ce fichier contient le texte suivant.

{"name": "Steve", "languages": ["English", "French"], "married": false, "age": 33} 

Python Pretty Print JSON

Pour analyser et déboguer les données JSON, il peut être nécessaire de les imprimer dans un format plus lisible. Vous pouvez le faire en passant des paramètres supplémentaires indent et sort_keys à json.dumps et à la méthode json.dump.

import json
person_string = '{"name": "Bob", "languages": "English", "numbers": [2, 1.6, null]}'
# Getting dictionary
person_dict = json.loads(person_string)
# Pretty Printing JSON string back
print(json.dumps(person_dict, indent = 4, sort_keys=True))

Lorsque vous exécutez le programme, la sortie sera la suivante :

{
    "languages": "English",
    "name": "Bob",
    "numbers": [
        2,
        1.6,
        null
    ]
}

Dans le programme ci-dessus, nous avons utilisé quatre espaces pour l'indentation, les clés étant triées par ordre croissant.

D'ailleurs, la valeur par défaut de indentation est None, et la valeur par défaut de sort_keys est False. 

Si cela vous semble un peu trop compliqué, nous avons une introduction fantastique et facile à comprendre sur le Web Scraping. Si vous recherchez des proxys résidentiels rotatifs pour assurer une opération de collecte de données sans heurts, contactez notre équipe pour plus de détails ou découvrez nos forfaits mensuels inclusifs.

FAQ

Qui a créé JSON ?

Douglas Crockford l'a créé en 1999 comme alternative à XML.

Qu'est-ce qu'un arbre syntaxique ?

Un arbre syntaxique représente visuellement la structure d'une langue. Il décompose le langage en parties de phrase, en ignorant généralement le contexte.

Comment lire un fichier JSON local en Python ?

Tout d'abord, importez le module json et ouvrez le fichier en utilisant le nom du fichier json à l'aide de la fonction open(). Ensuite, lisez le fichier json à l'aide de la fonction load() et placez les données json dans une variable.

In this Article:
Leave behind the complexities of web scraping.
Opt for IPBurger’s advanced web intelligence solutions to effortlessly collect real-time public data.
S'inscrire

Plonger encore plus profondément dans le

Proxies
AJ Tait
The Best Storm Proxies Alternative: Faster, Safer & More Affordable Proxies

Looking for a Storm Proxies Alternative? Storm Proxies sells the dream: simple, affordable proxies that “just work.” And for some users? It kind of delivers. Until it doesn’t. Because here’s the reality—if you’re pulling small data sets, running light scraping jobs, or dipping your toes into sneaker copping, Storm Proxies

Proxies
AJ Tait
The Best IPRoyal Alternative for Power, Control & Price

Outgrowing IPRoyal? Here’s the Smarter Alternative If you’ve been using IPRoyal, chances are it was for one simple reason—it’s cheap. And in the world of proxies, “cheap” can be enough to get you started. But here’s the thing about IPRoyal: it’s a gateway, not a long-term solution. At first, it

Scale Your Business
With The Most Advanced
Proxies On Earth
Rejoignez le premier réseau de proxy primé