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
Instructions de l’exercice
- Charger la fonction
json_normalize()depuis le sous-moduleio.jsondepandas. - Isoler les données JSON de
responseet les affecter àdata. - Utiliser
json_normalize()pour aplatir et charger les données des commerces dans un dataframe,cafes. Définir l'argumentseppour 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())