Aquí mi código:
import pandas as pd
import requests
import json
datos_frutas = requests.get('https://fruityvice.com/api/fruit/all')
resultado = json.loads(datos_frutas.text)
Luego podemos obtener una vista previa del DataFrame.
pd.DataFrame(resultado)
name id family order genus nutritions
0 Persimmon 52 Ebenaceae Rosales Diospyros {'calories': 81, 'fat': 0.0, 'sugar': 18.0, 'c...
1 Strawberry 3 Rosaceae Rosales Fragaria {'calories': 29, 'fat': 0.4, 'sugar': 5.4, 'ca...
2 Banana 1 Musaceae Zingiberales Musa {'calories': 96, 'fat': 0.2, 'sugar': 17.2, 'c..
Este DataFrame tiene 6 columnas: genus (género), name (nombre), id, family (familia), order (orden) e nutritions (nutriciones). Observe que la columna nutritions tiene toda la información nutricional anidada en ella. Por tanto, es necesario normalizar los datos.
El desafío ahora es normalizar este DataFrame.
pd.json_normalize(resultado)
name id family order genus nutritions.calories nutritions.fat nutritions.sugar nutritions.carbohydrates nutritions.protein
0 Persimmon 52 Ebenaceae Rosales Diospyros 81 0.00 18.00 18.00 0.00
1 Strawberry 3 Rosaceae Rosales Fragaria 29 0.40 5.40 5.50 0.80
2 Banana 1 Musaceae Zingiberales Musa 96 0.20 17.20 22.00 1.00
3 Tomato 5 Solanaceae Solanales Solanum 74 0.20 2.60 3.90 0.90
df_normalizado= pd.json_normalize(resultado)
Exportando archivo json
df_normalizado.to_json('info_nutricional.json')