Comment convertir des données JSON en fichier CSV dans Python ?

La conversion de données JSON en fichier CSV dans Python est une tâche courante pour la manipulation et l’analyse de données. JSON (JavaScript Object Notation) est un format populaire pour l’échange de données, car il est facile à lire et à écrire pour les humains et les machines. CSV (Comma Separated Values) est un format simple pour stocker des données tabulaires, largement utilisé dans l’analyse et la visualisation de données. Ce guide vous montrera comment convertir des données JSON en fichier CSV dans Python à l’aide de différentes méthodes.

Pourquoi convertir JSON en CSV ?

Avant de se lancer dans le processus de conversion, il est important de comprendre les raisons qui le motivent. JSON et CSV ont des objectifs différents :

  • JSON: idéal pour les structures de données hiérarchiques ou imbriquées. Il est couramment utilisé dans les applications web pour l’échange de données.
  • CSV: mieux adapté aux données tabulaires plates. Il est largement utilisé dans les outils d’analyse de données et les tableurs.

Comprendre les forces et les faiblesses du JSON par rapport au CSV peut vous aider à choisir le format le mieux adapté à vos besoins.

Méthode 1 : Utilisation des bibliothèques csv et json

Les bibliothèques csv et json intégrées à Python offrent un moyen simple de convertir des données JSON en CSV.

      import json
import csv

# Exemple de données JSON
json_data = '''
[
    {"name": "John", "age": 30, "city": "New York"},
    {"name": "Anna", "age": 22, "city": "London"},
    {"name": "Mike", "age": 32, "city": "Chicago"}
]
'''

# Analyse des données JSON
data = json.loads(json_data)

# Ouvrir un fichier CSV pour l'écriture
with open('output.csv', 'w', newline='') as csv_file:
    # Créer un objet d'écriture CSV
    csv_writer = csv.writer(csv_file)
    
    # Écrire la ligne d'en-tête    
    header = data[0].keys()    
    csv_writer.writerow(header)    
        
    # Écrire les lignes de données    
    for row in data:    
        csv_writer.writerow(row.values())
    

Cette méthode lit les données JSON, les analyse dans un dictionnaire Python, puis les écrit dans un fichier CSV.

Méthode 2 : Utilisation de pandas

Pandas est une bibliothèque puissante pour la manipulation et l’analyse de données. Elle rend le processus de conversion facile et efficace.

      import pandas as pd

# Exemple de données JSON
json_data = '''
[
    {"name": "John", "age": 30, "city": "New York"},
    {"name": "Anna", "age": 22, "city": "London"},
    {"name": "Mike", "age": 32, "city": "Chicago"}
]
'''

# Charger les données JSON dans un DataFrame
df = pd.read_json(json_data)

# Écrire le DataFrame dans un fichier CSV
df.to_csv('output.csv', index=False)
    

Pandas gère la conversion en quelques lignes de code seulement, ce qui en fait un choix privilégié pour les tâches complexes de manipulation de données.

Méthode 3 : Utilisation de csv et json avec JSON imbriqué

La gestion des structures JSON imbriquées nécessite d’aplatir les données avant la conversion. La fonction json_normalize de pandas peut être utilisée à cette fin.

      import pandas as pd
from pandas import json_normalize

# Exemple de données JSON imbriquées
nested_json_data = '''
[
    {
        "name": "John",
        "age": 30,
        "address": {"city": "New York", "zip": "10001"}
    },
    {
        "name": "Anna",
        "age": 22,
        "address": {"city": "London", "zip": "SW1A"}
    }
]
'''

# Charger et normaliser les données JSON
df = pd.json_normalize(json.loads(nested_json_data))

# Écrire le DataFrame dans un fichier CSV
df.to_csv('output.csv', index=False)

    

Cette approche est utile pour convertir des structures JSON complexes en un format CSV plat.

JSON vs XML

Bien que JSON et XML soient tous deux utilisés pour l’échange de données, JSON est généralement plus facile à lire et à écrire. Cependant, XML peut être plus puissant en raison de sa capacité à définir des schémas complexes. Comprendre les différences entre JSON et XML peut vous aider à choisir le format adapté à votre projet.

Conclusion

La conversion de données JSON en CSV dans Python est un processus simple qui utilise des bibliothèques telles que csv, json et pandas. Chaque méthode a ses avantages, et le choix dépend de la complexité de vos données et de vos besoins spécifiques. Si vous souhaitez obtenir plus d’informations sur JSON vs CSV, lisez cet article.

Inscrivez-vous dès aujourd’hui sur Bright Data et découvrez des produits de Scraping web haut de gamme.

FAIT CONFIANCE PAR 20,000+ CLIENTS DANS LE MONDE ENTIER

Prêt à commencer ?