
Partager:
Alvaro est un défenseur des développeurs chez Vonage, se concentrant sur les API de réseau. Il est passionné par l'expérience des développeurs, les API et l'Open Source. En dehors du travail, vous pouvez souvent le trouver en train d'explorer des magasins de bandes dessinées, d'assister à des festivals de science-fiction et d'horreur ou de fabriquer des objets avec ces fameux petits blocs de construction en plastique.
Comment travailler avec JSON en Python : Un guide pour les débutants
JSON (JavaScript Object Notation) est couramment utilisé lors de l'utilisation d'API pour échanger des données entre les applications web et les serveurs. Il est léger, lisible par l'homme et facile à analyser.
En Python, il est facile de travailler avec JSON, grâce à la fonction intégrée json intégré.
Prêt à travailler avec JSON en Python ? Commençons !
Qu'est-ce que JSON ?
JSON est un format textuel qui représente des données structurées à l'aide de paires clé-valeur. Voici un exemple simple de JSON extrait de la réponse de l'une de nos API de réseau :
{
"phoneNumber": "+99012345678",
"location": {
"latitude": 50.735851,
"longitude": 7.10066,
},
"is_active": true
}JSON prend en charge différents types de données :
Chaînes de caractères (par exemple, "+99012345678")
Numbers (par exemple, 25, 50,7358)
Booléens (vrai ou faux)
Nul (null)
Objets (paires clé-valeur, similaires aux dictionnaires Python)
Tableaux (listes de valeurs, similaires aux listes Python)
Comment travailler avec JSON en Python
Python fournit une fonction intégrée json dans sa bibliothèque standard, permettant aux développeurs de travailler avec des données JSON. Vous pouvez l'importer en utilisant :
import json Analyse des données JSON
Les données JSON sont généralement converties en dictionnaires Python. Pour analyser et convertir des données JSON représentées sous la forme d'une chaîne de caractères, utilisez la fonction json.loads()
json_data = '{"name": "Maria", "age": 25, "city": "Madrid"}' # string
parsed_data = json.loads(json_data) # Python dict
print(parsed_data["name"]) # prints “Maria”json.loads() est la méthode que vous utiliserez pour analyser le JSON des réponses de l'API.
Convertir des objets Python en JSON
Pour convertir (ou sérialiser) des objets Python en une chaîne formatée JSON, utilisez la fonction json.dumps()
python_dict = {"name": "John", "city": "London"}
json_string = json.dumps(python_dict)
print(json_string) # prints '{"name": "John", "city": "London"}'Vous pouvez également formater la sortie JSON avec une indentation pour plus de lisibilité :
formatted_json = json.dumps(python_dict, indent=4)
print(formatted_json)Bien sûr, les formats JSON invalides lèveront une exception. Nous devons gérer ces erreurs en utilisant la gestion normale des exceptions de Python :
try:
invalid_json = '{"name": "John", "age": 30,}' # Incorrect JSON
parsed_data = json.loads(invalid_json)
except json.JSONDecodeError as e:
print("Error decoding JSON:", e) Lire et écrire des fichiers JSON
Pour écrire des données JSON dans un fichier, utilisez la fonction json.dump():
with open("data.json", "w") as file:
json.dump(python_dict, file, indent=4)Pour lire des données JSON à partir d'un fichier, utilisez la fonction json.load():
with open("data.json", "r") as file:
data = json.load(file) # data is a Python dict
print(data) Sérialiser d'autres types de données Python en JSON
Dans les exemples précédents, nous avons vu comment sérialiser des dictionnaires Python. Cependant, Python permet de sérialiser d'autres types de données au format JSON :
Les listes sont naturellement prises en charge dans la sérialisation JSON :
list_data = ["one", "two", "three"]
json_list = json.dumps(list_data)
print(json_list) # ["one", "two", "three"]Les tuples peuvent être convertis en listes JSON :
tuple_data = ("one", "two", "three")
json_tuple = json.dumps(tuple_data)
print(json_tuple) # ["one", "two", "three"]Les ensembles Python doivent être convertis en listes avant la sérialisation :
set_data = {1, 2, 3, 4}
json_set = json.dumps(list(set_data))
print(json_set) # [1, 2, 3, 4]Enfin, pour sérialiser des objets personnalisés, nous devons implémenter une fonction d'encodage personnalisée :
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def person_encoder(obj):
if isinstance(obj, Person):
return {"name": obj.name, "age": obj.age}
raise TypeError("Object of type Person is not JSON serializable")
person = Person("Maria", 30)
json_person = json.dumps(person, default=person_encoder)
print(json_person) # {"name": "Alice", "age": 30} Conclusion
Contrairement à d'autres formats (XML, nous vous regardons !), travailler avec JSON en Python est simple et efficace. Nous n'avons pas besoin de dépendances supplémentaires car la bibliothèque standard de Python inclut le module json . La maîtrise de JSON vous aidera à améliorer vos intégrations API, en particulier lors de l'analyse des réponses API.
Vous avez une question ou souhaitez partager ce que vous construisez ?
Rejoignez la conversation sur le Communauté Vonage Slack
S'abonner à la Bulletin d'information du développeur
Suivez-nous sur X (anciennement Twitter) pour les mises à jour
Regardez les tutoriels sur notre chaîne YouTube
Connectez-vous avec nous sur la page Vonage Developer sur LinkedIn
Restez connecté et tenez-vous au courant des dernières nouvelles, astuces et événements concernant les développeurs.
Partager:
Alvaro est un défenseur des développeurs chez Vonage, se concentrant sur les API de réseau. Il est passionné par l'expérience des développeurs, les API et l'Open Source. En dehors du travail, vous pouvez souvent le trouver en train d'explorer des magasins de bandes dessinées, d'assister à des festivals de science-fiction et d'horreur ou de fabriquer des objets avec ces fameux petits blocs de construction en plastique.