En este tema podemos compartir recursos útiles para trabajar con datos. Pueden ser enlaces de manuales/tutoriales, herramientas, repositorios, sitios de referencia, etc. Sugerimos incluir un breve párrafo que describa el recurso y desde luego, el enlace.
Hola!
Con nuestro equipo hemos desarrollado el siguiente código, cuyo objetivo principal es:
Utilizar la API del portal de datos abiertos, buscar un conjunto de datos y luego en base a ese nombre descargar todos los recursos del conjunto.
Esta basado en un Jupyter Notebook en Python.
Buscar conjuntos de datos
# API docs: http://docs.ckan.org/en/2.9/api/
import requests # Librerias utilizadas
import json
import os
# Query a la API
query = input("Busca por palabras claves: ")
r = requests.get(f"https://datosabiertos.gob.ec/api/3/action/package_search?q={query}")
data = r.json()
number_of_suggestions = len(data["result"]["results"])
print(f"Se han encontrado {number_of_suggestions} coincidencias: \n")
# Muestra los conjuntos de datos
for i in range(0, number_of_suggestions):
print(json.dumps(data["result"]["results"][i]["name"],indent = 4, sort_keys = True))
Input: “colocacion”
Output:
Se han encontrado 7 coincidencias:
“colocacion-por-zonal”
“colocacion-por-segmento”
“colocacion-por-sector”
“colocacion-por-provincia”
“colocacion-por-genero”
“colocacion-por-ano”
“colocacion-por-zonal-oficina”
Descargar datos de un conjunto de datos
El objetivo aquí es copiar y pegar uno de los conjuntos que se muestren arriba.
# Ingresa el nombre de un conjunto de datos mostrado arriba.
query_conjuntos = input("Ingrese el nombre del conjunto elegido: ")
# Crea una carpeta con el nombre del conjunto de datos.
os.system(f"mkdir /Users/gutembergmendoza/Docs/hub_uio/data/{query_conjuntos}")
# Query a la API
r = requests.get(f"https://datosabiertos.gob.ec/api/3/action/package_search?q={query_conjuntos}")
data = r.json()
# Working with Json File
number_of_files = len(data["result"]["results"][0]["resources"])
print("Nombre del conjunto: ", query_conjuntos, "\n")
json_resources = data["result"]["results"][0]["resources"]
for i in range(0, number_of_files):
print("\n")
print('Recurso numero: ', i)
file_name = json.dumps(json_resources[i]["name"],indent = 4, sort_keys = True)
print("Nombre: " , file_name )
# Resource link
link = json.dumps(json_resources[i]["url"],indent = 4, sort_keys = True)
#formatted the link
formatted_link = str(link).replace('"','')
# Download the data
json_to_data = requests.get(formatted_link).content
print("file: " , formatted_link[formatted_link.find('download')+9:])
with open(f"data/{query_conjuntos}"+ "/" + formatted_link[formatted_link.find('download')+9:],'wb') as file:
file.write(json_to_data)
print('Datos descargados.')
Input: colocacion-por-genero
output: Se descarga el contenido.
Esperamos que este código sirva para la comunidad.
Pueden revisar el repositorio: GitHub - matardy/datos-abiertos-ec-API: This is a code example about how to use datosabiertos.gob.ec API.
Saludos,
Comparto algunos enlaces acerca de herramientas de visualización y construcción de historias con datos.
Para hacer storymaps: Sign In
Para visualizaciones interactivas: https://flourish.studio/
Para visualizaciones simples: https://www.datawrapper.de/
Para inforgrafías: https://infogram.com/es/
Comparto un video de SocialTIC, una ONG dedicada a la investigación, formación, acompañamiento y promoción de la tecnología digital e información para fines sociales.
Narrativas basadas en datos: aprende a elegir formatos para tus audiencias
En este vídeo Juan Manuel Casanueva de SocialTIC, explica sobre distinguir el grado de especialización de tus audiencias para elegir el tratamiento adecuado de los datos para su consumo. También explica sobre los distintos tipos de formatos y conocer ejemplos iberoamericanos de narrativas basadas en datos.
Narrativas Basadas en Datos
Diapositivas:
Más recursos pueden encontrar en el sitio de School of Data en español: