astronautas / app.py
starbotica's picture
Update app.py
acb60d9
import requests
import gradio
import json
import pandas
def obtener_astronautas():
respuesta = requests.get("http://api.open-notify.org/astros.json")
info = respuesta.json()
print(str(info))
astronautas = []
naves = []
for astronauta in info["people"]:
# cada astronauta es un diccionario
print(astronauta)
astronautas.append(astronauta["name"])
naves.append(astronauta["craft"])
print(str(info))
datos = {"Nombre":astronautas,"Nave":naves}
return pandas.DataFrame(datos)
# Explicación
# Recibimos esto:
#{'message': 'success',
#'people': [{'name': 'Cai Xuzhe', 'craft': 'Tiangong'}, {'name': 'Chen Dong', 'craft': 'Tiangong'}, {'name': 'Liu Yang', 'craft': 'Tiangong'}, {'name': 'Sergey Prokopyev', 'craft': 'ISS'}, {'name': 'Dmitry Petelin', 'craft': 'ISS'}, {'name': 'Frank Rubio', 'craft': 'ISS'}, {'name': 'Nicole Mann', 'craft': 'ISS'}, {'name': 'Josh Cassada', 'craft': 'ISS'}, {'name': 'Koichi Wakata', 'craft': 'ISS'}, {'name': 'Anna Kikina', 'craft': 'ISS'}],
#'number': 10}
# Para sacar un dataframe de aquí queremos que estén formateados de la siguiente forma:
# datos = {'titulo_nombre': [lista de los nombres], 'titulo_nave': [lista de las naves]}
# Para ello recorremos todos los astronautas con el for y vamos creando las dos listas. Al final las metemoe en el diccionario y
# creamos el dataframe con los títulos de las columnas.
entrada = None
salida = gradio.Dataframe(label="Astronautas, cosmonautas y taikonautas")
demo = gradio.Interface(
fn=obtener_astronautas,
inputs=entrada,
outputs=salida,
allow_flagging=False,
title="Información espacial",
description="Pulsa el botón Generar para ver los nombres de quienes están actualmente viviendo en el espacio..."
)
demo.launch()