fr
English
Español
中國人
Tiếng Việt
Deutsch
Українська
Português
भारतीय
Türkçe
한국인
Italiano
Gaeilge
اردو
Indonesia
Polski JSON est l'abréviation de JavaScript Object Notation. Il est non seulement léger, mais aussi facile à lire et à écrire pour les humains. De même, les machines le trouvent simple à analyser et à générer. Pour tout développeur Python, l'analyse est cruciale lorsqu'il s'agit de traiter du contenu provenant d'API, de fichiers de configuration ou d'autres sources d'informations stockées. Cet article vous présente les bases de l'analyse JSON à l'aide du module Python, y compris la manière d'utiliser json.dump python pour sauvegarder le contenu.
JSON structure les détails en paires clé-valeur. Voici un exemple de base d'un objet :
{
"name": "Alice",
"age": 30,
"is_student": false,
"courses": ["Math", "Science"]
}
Cet exemple d'analyse python json contient des éléments communs : une chaîne, un nombre, un booléen et un tableau. Se familiariser avec cette structure facilite grandement le travail en Python.
L'implémentation de Python permet d'analyser facilement les chaînes json en utilisant le module intégré de Python. Ce module comprend des méthodes telles que json.loads() pour lire une chaîne et json.load() pour lire un fichier. Inversement, json.dumps() et json.dump Python sont utilisés pour écrire des informations dans une chaîne et un fichier, respectivement.
Voyons maintenant comment lire des données JSON, ce que nous verrons plus loin.
Si vous voulez lire du json en Python, utilisez json.loads() pour analyser une chaîne et la convertir en un objet Python :
import json
json_string = '{"name": "Alice", "age": 30, "is_student": false, "courses": ["Math", "Science"]}'
data = json.loads(json_string)
print(data)
Sortie :
Pour extraire des informations d'un fichier, utilisez la méthode suivante : json.load() et ouvrez un fichier json en python :
import json
with open('data.json', 'r') as file:
data = json.load(file)
print(data)
Sortie :
Avant d'écrire, vous avez souvent besoin de lire ou de charger des informations existantes - et c'est là que la méthode python load json file devient utile. Une fois les informations chargées correctement, vous pouvez les manipuler et les écrire dans différents formats.
Pour écrire des informations dans une chaîne de caractères, utilisez la méthode Python json.dumps :
import json
data = {
"name": "Alice",
"age": 30,
"is_student": False,
"courses": ["Math", "Science"]
}
json_string = json.dumps(data)
print(json_string)
Sortie :
Pour écrire les détails de ce fichier, utilisez la méthode Python json.dump :
import json
data = {
"name": "Alice",
"age": 30,
"is_student": False,
"courses": ["Math", "Science"]
}
with open('data.json', 'w') as file:
json.dump(data, file)
Les objets imbriqués sont courants lorsque l'on travaille avec des structures d'information plus complexes, qui peuvent facilement gérer ces structures imbriquées.
import json
nested_json_string = '''
{
"name": "Alice",
"age": 30,
"is_student": false,
"courses": ["Math", "Science"],
"address": {
"street": "123 Main St",
"city": "Wonderland"
}
}
'''
data = json.loads(nested_json_string)
print(data['address']['city'])
Sortie :
Le langage ne peut pas transformer automatiquement tous les objets personnalisés en JSON. Dans ce cas, vous devrez créer un encodeur personnalisé.
import json
class Student:
def __init__(self, name, age, is_student):
self.name = name
self.age = age
self.is_student = is_student
class StudentEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, Student):
return obj.__dict__
return super().default(obj)
student = Student("Alice", 30, False)
json_string = json.dumps(student, cls=StudentEncoder)
print(json_string)
Sortie :
Pour désérialiser des objets personnalisés, vous devez mettre en œuvre un décodeur personnalisé qui sait comment les traiter.
import json
class Student:
def __init__(self, name, age, is_student):
self.name = name
self.age = age
self.is_student = is_student
def student_decoder(dct):
return Student(dct['name'], dct['age'], dct['is_student'])
json_string = '{"name": "Alice", "age": 30, "is_student": false}'
student = json.loads(json_string, object_hook=student_decoder)
print(student.name)
Sortie :
Travailler avec des données détaillées peut conduire à plusieurs erreurs courantes, en particulier lors de l'analyse, de la génération ou de l'accès à un contenu structuré. L'utilisation d'un parseur json python fiable peut aider à identifier et à résoudre ces problèmes plus efficacement. Voici quelques-unes des erreurs les plus courantes :
Une erreur fréquente lors de l'analyse d'un fichier json est la rencontre d'un format invalide. Il nécessite des guillemets doubles autour des clés et des valeurs de chaîne, ainsi qu'une imbrication correcte des crochets et des accolades.
import json
invalid_json_string = "{'name': 'Alice', 'age': 30, 'is_student': False}"
try:
data = json.loads(invalid_json_string)
except json.JSONDecodeError as e:
print(f"Invalid JSON format: {e}")
Sortie :
Il arrive parfois que le contenu ne contienne pas toutes les clés attendues. L'utilisation de la méthode get() vous permet de gérer en toute sécurité les clés manquantes en renvoyant une valeur par défaut au lieu de déclencher une erreur.
import json
json_string = '{"name": "Alice", "age": 30}'
data = json.loads(json_string)
is_student = data.get('is_student', False)
print(is_student)import json
json_string = '{"name": "Alice", "age": 30}'
data = json.loads(json_string)
is_student = data.get('is_student', False)
print(is_student)
Utilisez le module pdb pour définir des points d'arrêt et déboguer votre code d'analyse.
import json
import pdb
json_string = '{"name": "Alice", "age": 30, "is_student": false}'
pdb.set_trace()
data = json.loads(json_string)
print(data)
Le web scraping consiste généralement à récupérer du contenu auprès de services qui renvoient les informations obtenues. Voici un exemple qui utilise la bibliothèque de requêtes ainsi que le point d'accès https://httpbin.org/anything.
Avant de commencer, vérifiez que vous avez installé le paquet de requêtes :
pip install requests
Lorsque vous travaillez avec du contenu structuré, vous pouvez utiliser la bibliothèque requests pour faciliter les choses. Il suffit d'émettre une requête GET et d'indiquer l'URL via requests.get(url). Ensuite, vous pouvez analyser la réponse avec response.json(). À partir de là, il est facile d'accéder à des informations spécifiques telles que les en-têtes, l'agent utilisateur, l'origine ou l'URL de la requête et de les imprimer si nécessaire.
Le code contient une gestion efficace des erreurs ; il capture json.JSONDecodeError en cas d'erreur de décodage et KeyError en cas d'absence d'une clé spécifique, ce qui permet au programme d'être protégé contre les pannes dues à l'absence de données. Cette robustesse du code lui permet donc de gérer parfaitement les tâches réelles de web scraping.
import requests
import json
url = 'https://httpbin.org/anything'
response = requests.get(url)
try:
data = response.json()
# Extraire des données spécifiques de la réponse JSON
headers = data['headers']
user_agent = headers.get('User-Agent', 'N/A')
origin = data.get('origin', 'N/A')
url = data.get('url', 'N/A')
print(f"User Agent: {user_agent}")
print(f"Origin: {origin}")
print(f"URL: {url}")
except json.JSONDecodeError:
print("Error decoding JSON response")
except KeyError as e:
print(f"Key error: {e} not found in the JSON response")
Tout développeur doit savoir comment analyser un fichier json en Python. Avec le module et la meilleure façon de le faire mis en évidence par ce manuel, vous serez en mesure de lire, d'écrire et de déboguer assez rapidement. Cela signifie que vous devez tester votre code régulièrement et utiliser les bons outils et les dernières fonctionnalités pour être plus performant. Ce guide se concentre sur l'analyse des données json en python pour vous aider à maîtriser ces tâches efficacement.
Lorsque vous faites du web scraping, l'analyse devient essentielle car le contenu des API web se présente souvent sous ce format. Savoir le traiter et le manipuler vous permet d'extraire efficacement des informations précieuses à partir d'une variété de sources.
L'analyse est une compétence clé pour tout développeur travaillant avec des API web, des fichiers de configuration ou des sources externes. Le traitement des informations - qu'il s'agisse de lire une chaîne ou un fichier, d'écrire une sortie structurée ou de traiter des objets imbriqués et personnalisés - est simplifié grâce au module intégré de Python. Les développeurs peuvent débloquer les méthodes Python json.load(), json.loads(), json.dump(), json.dumps() et apprendre à traiter les problèmes courants, à mettre en œuvre des encodeurs ou des décodeurs personnalisés et à créer des applications sur mesure pour des interactions d'informations qui sont robustes et fiables. Étant donné que ce format est un standard web pour l'échange d'informations, ces compétences sont précieuses pour le scraping, la manipulation de contenu et l'intégration de multiples services via des API. L'utilisation d'un code python simple pour lire un fichier json rend l'analyse d'un fichier json en python accessible à tout projet, tandis que json.dump python permet de sauvegarder le matériel de manière efficace.
Commentaires: 0