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()