File size: 1,785 Bytes
5743e93
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
acb60d9
5743e93
 
 
 
 
 
 
acb60d9
5743e93
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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()