Aan de slagGa gratis aan de slag

Geneste JSON's flattenen

Een kenmerk van JSON-gegevens is dat ze genest kunnen zijn: de waarde van een attribuut kan bestaan uit paren van attribuut en waarde. Deze geneste data is nuttiger als je die uitpakt, of "flat" maakt, in losse kolommen van een dataframe. De submodule pandas.io.json heeft hiervoor een functie: json_normalize().

De Yelp API-respons is genest. Jij gaat de volgende laag aan data in de kolommen coordinates en location flat maken.

pandas (als pd) en requests zijn al geïmporteerd. De resultaten van de API-aanroep zijn opgeslagen als response.

Deze oefening maakt deel uit van de cursus

Gestroomlijnde data-inname met pandas

Cursus bekijken

Oefeninstructies

  • Laad de functie json_normalize() uit de io.json-submodule van pandas.
  • Isoleer de JSON-gegevens uit response en wijs ze toe aan data.
  • Gebruik json_normalize() om de businesses-data te flattenen en te laden in een dataframe, cafes. Zet het argument sep op een underscore (_) in plaats van punten.
  • Toon de head van data.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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())
Code bewerken en uitvoeren