CommencezCommencez gratuitement

Aplatir des JSON imbriqués

Une caractéristique des données JSON est qu'elles peuvent être imbriquées : la valeur d'un attribut peut elle-même contenir des paires attribut‑valeur. Il est souvent plus utile de « décompresser » ces données, ou de les aplatir, en colonnes distinctes d'un dataframe. Le sous-module pandas.io.json propose une fonction, json_normalize(), qui fait exactement cela.

Les données renvoyées par l'API Yelp sont imbriquées. Votre tâche consiste à aplatir le niveau suivant de données dans les colonnes coordinates et location.

pandas (sous l'alias pd) et requests ont été importés. Les résultats de l'appel à l'API sont stockés dans response.

Cette activité fait partie du cours

Ingestion de données rationalisée avec pandas

Voir le cours

Instructions de l’exercice

  • Charger la fonction json_normalize() depuis le sous-module io.json de pandas.
  • Isoler les données JSON de response et les affecter à data.
  • Utiliser json_normalize() pour aplatir et charger les données des commerces dans un dataframe, cafes. Définir l'argument sep pour utiliser des traits de soulignement (_) plutôt que des points.
  • Afficher l'en-tête de data.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Load json_normalize()
____

# Isolate the JSON data from the API response
data = ____

# Flatten business data into a dataframe, replace separator
cafes = ____(data["businesses"],
             ____)

# View data
print(cafes.head())
Modifier et exécuter le code