Caso 3: catálogo válido remoto
En esta prueba se realiza el proceso completo de validación, transformación y harvesting a partir de un archivo xlsx que contiene los metadatos pertenecientes al catálogo del Ministerio de Justicia. Nota: Se trata de un catálogo conocido y válido en cuanto a su estructura y metadatos. Archivo utilizado: https://raw.githubusercontent.com/datosgobar/libreria-catalogos/master/justicia/data.json
Importación de metodos y clases
In [31]:
from pydatajson import DataJson #lib y clase
from pydatajson.pydatajson import read_catalog # lib, modulo ... metodo Lle el catalogo -json o xlsx o (local o url) dicc- y lo transforma en un diccionario de python
from pydatajson.xlsx_to_json import write_json_catalog
import arrow
Declaración de variables y paths
In [32]:
#completar con lo que corresponda
ORGANISMO = 'justicia' #ORGANISMO = 'XXXXXXXX'
catalogo = "https://raw.githubusercontent.com/datosgobar/pydatajson/master/tests/samples/catalogo_justicia.json"
In [33]:
#no modificar
HOY = arrow.now().format('YYYY-MM-DD-HH_mm')
catalogo_a_json = "archivos-generados\\jsons\\catalogo-{}-{}.json".format(ORGANISMO, HOY)#ej:tests\excel_validos\catalogo-justicia-2017-01-12.xlsx
reporte_datasets="archivos-generados\\reportes\\reporte-catalogo-{}-{}.xlsx".format(ORGANISMO, HOY)
archivo_config_sin_reporte="archivos-generados\\configuracion\\archivo-config_-{}-{}-sinr.csv".format(ORGANISMO, HOY)
archivo_config_con_reporte="archivos-generados\\configuracion\\archivo-config-{}-{}-conr.csv".format(ORGANISMO, HOY)
Instanciación de la clase DataJson
In [34]:
dj = DataJson()
Validación -V/F- del catálogo en json
In [36]:
dj.is_valid_catalog(catalogo)
Out[36]:
Validación detallada del catálogo en json
In [37]:
dj.validate_catalog(catalogo)
Out[37]:
Generación del archivo de reporte de datasets
In [38]:
dj.generate_datasets_report(catalogo, harvest='valid',export_path=reporte_datasets)
# proceso el repote, 0 y 1s
Generación del archivo de configuración para el harvester
In [39]:
# usando el reporte
dj.generate_harvester_config(harvest='report', report=reporte_datasets, export_path=archivo_config_con_reporte)
In [11]:
# sin usar el reporte
dj.generate_harvester_config(catalogs=catalogo, harvest='valid', export_path=archivo_config_sin_reporte)
#(catalogs=None, harvest=u'valid', report=None, export_path=None)