pydatajson package

Submodules

pydatajson.ckan_reader module

Extensión de pydatajson para leer catálogos de metadatos a través de la API de CKAN v3.

pydatajson.ckan_reader.add_accrualPeriodicity(dataset, package)[fuente]
pydatajson.ckan_reader.add_superTheme(dataset, package)[fuente]
pydatajson.ckan_reader.add_temporal(dataset, package)[fuente]
pydatajson.ckan_reader.map_group_to_theme(group)[fuente]

Mapea un diccionario con metadatos de cierto ‘group’ de CKAN a un diccionario con metadatos de un ‘theme’ según el estándar data.json.

pydatajson.ckan_reader.map_groups_to_themes(groups)[fuente]

Mapea una lista de ‘groups’ de CKAN a ‘themes’ de data.json.

pydatajson.ckan_reader.map_package_to_dataset(package, portal_url)[fuente]

Mapea un diccionario con metadatos de cierto ‘package’ de CKAN a un diccionario con metadatos de un ‘dataset’ según el estándar data.json.

pydatajson.ckan_reader.map_packages_to_datasets(packages, portal_url)[fuente]

Mapea una lista de ‘packages’ de CKAN a ‘datasets’ de data.json.

pydatajson.ckan_reader.map_resource_to_distribution(resource, portal_url)[fuente]

Mapea un diccionario con metadatos de cierto ‘resource’ CKAN a dicts con metadatos de una ‘distribution’ según el estándar data.json.

pydatajson.ckan_reader.map_resources_to_distributions(resources, portal_url)[fuente]

Mapea una lista de ‘resources’ CKAN a ‘distributions’ de data.json.

pydatajson.ckan_reader.map_status_to_catalog(status)[fuente]

Convierte el resultado de action.status_show() en metadata a nivel de catálogo.

pydatajson.ckan_reader.read_ckan_catalog(portal_url)[fuente]

Convierte los metadatos de un portal disponibilizados por la Action API v3 de CKAN al estándar data.json.

Parámetros:portal_url (str) – URL de un portal de datos CKAN que soporte la API v3.
Devuelve:
Representación interna de un catálogo para uso en las funciones
de esta librería.
Tipo del valor devuelto:
 dict

pydatajson.ckan_utils module

pydatajson.ckan_utils.append_attribute_to_extra(package, dataset, attribute, serialize=False)[fuente]
pydatajson.ckan_utils.convert_iso_string_to_utc(date_string)[fuente]
pydatajson.ckan_utils.map_dataset_to_package(catalog, dataset, owner_org, catalog_id=None, demote_superThemes=True, demote_themes=True)[fuente]
pydatajson.ckan_utils.map_distributions_to_resources(distributions, catalog_id=None)[fuente]
pydatajson.ckan_utils.map_theme_to_group(theme)[fuente]

pydatajson.core module

Módulo principal de pydatajson

Contiene la clase DataJson que reúne los métodos públicos para trabajar con archivos data.json.

class pydatajson.core.DataJson(catalog=None, schema_filename=None, schema_dir=None, default_values=None)[fuente]

Bases: dict

Métodos para trabajar con archivos data.json.

CATALOG_FIELDS_PATH = u'/home/docs/checkouts/readthedocs.org/user_builds/pydatajson/checkouts/0.4.10/pydatajson/fields'
catalog_report(catalog, harvest=u'none', report=None, catalog_id=None, catalog_homepage=None, catalog_org=None)[fuente]

Genera un reporte sobre los datasets de un único catálogo.

Parámetros:
  • catalog (dict, str o unicode) – Representación externa (path/URL) o interna (dict) de un catálogo.
  • harvest (str) – Criterio de cosecha (‘all’, ‘none’, ‘valid’, ‘report’ o ‘good’).
Devuelve:

Lista de diccionarios, con un elemento por cada dataset

presente en catalog.

Tipo del valor devuelto:
 

list

dataset_is_updated(catalog, dataset)[fuente]
datasets
distributions
fields
generate_catalog_readme(catalog, export_path=None)[fuente]

Genera una descripción textual en formato Markdown sobre los metadatos generales de un catálogo (título, editor, fecha de publicación, et cetera), junto con:

  • estado de los metadatos a nivel catálogo,
  • estado global de los metadatos,
  • cantidad de datasets federados y no federados,
  • detalles de los datasets no federados
  • cantidad de datasets y distribuciones incluidas

Es utilizada por la rutina diaria de libreria-catalogos para generar un README con información básica sobre los catálogos mantenidos.

Parámetros:
  • catalog (str o dict) – Path a un catálogo en cualquier formato, JSON, XLSX, o diccionario de python.
  • export_path (str) – Path donde exportar el texto generado (en formato Markdown). Si se especifica, el método no devolverá nada.
Devuelve:

Texto de la descripción generada.

Tipo del valor devuelto:
 

str

generate_catalogs_indicators(catalogs=None, central_catalog=None)[fuente]
generate_dataset_documentation(dataset_identifier, export_path=None, catalog=None)[fuente]

Genera texto en markdown a partir de los metadatos de una dataset.

Parámetros:
  • dataset_identifier (str) – Identificador único de un dataset.
  • export_path (str) – Path donde exportar el texto generado. Si se especifica, el método no devolverá nada.
  • catalog (dict, str o unicode) – Representación externa (path/URL) o interna (dict) de un catálogo. Si no se especifica se usa el catálogo cargado en self (el propio objeto DataJson).
Devuelve:

Texto que describe una dataset.

Tipo del valor devuelto:
 

str

generate_datasets_report(catalogs, harvest=u'valid', report=None, export_path=None, catalog_ids=None, catalog_homepages=None, catalog_orgs=None)[fuente]

Genera un reporte sobre las condiciones de la metadata de los datasets contenidos en uno o varios catálogos.

Parámetros:
  • catalogs (str, dict o list) – Uno (str o dict) o varios (list de strs y/o dicts) catálogos.
  • harvest (str) – Criterio a utilizar para determinar el valor del campo “harvest” en el reporte generado (‘all’, ‘none’, ‘valid’, ‘report’ o ‘good’).
  • report (str) – Path a un reporte/config especificando qué datasets marcar con harvest=1 (sólo si harvest==’report’).
  • export_path (str) – Path donde exportar el reporte generado (en formato XLSX o CSV). Si se especifica, el método no devolverá nada.
  • catalog_id (str) – Nombre identificador del catálogo para federación
  • catalog_homepage (str) –

    URL del portal de datos donde está implementado el catálogo. Sólo se pasa si el portal es un CKAN o respeta la estructura:

    https://datos.{organismo}.gob.ar/dataset/{dataset_identifier}
Devuelve:

Contiene tantos dicts como datasets estén presentes en

catalogs, con la data del reporte generado.

Tipo del valor devuelto:
 

list

generate_datasets_summary(catalog, export_path=None)[fuente]

Genera un informe sobre los datasets presentes en un catálogo, indicando para cada uno:

  • Índice en la lista catalog[“dataset”]
  • Título
  • Identificador
  • Cantidad de distribuciones
  • Estado de sus metadatos [“OK”|”ERROR”]

Es utilizada por la rutina diaria de libreria-catalogos para reportar sobre los datasets de los catálogos mantenidos.

Parámetros:
  • catalog (str o dict) – Path a un catálogo en cualquier formato, JSON, XLSX, o diccionario de python.
  • export_path (str) – Path donde exportar el informe generado (en formato XLSX o CSV). Si se especifica, el método no devolverá nada.
Devuelve:

Contiene tantos dicts como datasets estén presentes en catalogs, con los datos antes mencionados.

Tipo del valor devuelto:
 

list

generate_distribution_ids(catalog)

Genera identificadores para las distribuciones que no los tienen.

Los identificadores de distribuciones se generan concatenando el id del dataset al que pertenecen con el índice posicional de la distribución en el dataset: distribution_identifier = “{dataset_identifier}_{index}”.

generate_harvestable_catalogs(catalogs, harvest=u'all', report=None, export_path=None)[fuente]

Filtra los catálogos provistos según el criterio determinado en harvest.

Parámetros:
  • catalogs (str, dict o list) – Uno (str o dict) o varios (list de strs y/o dicts) catálogos.
  • harvest (str) – Criterio para determinar qué datasets conservar de cada catálogo (‘all’, ‘none’, ‘valid’ o ‘report’).
  • report (list o str) – Tabla de reporte generada por generate_datasets_report() como lista de diccionarios o archivo en formato XLSX o CSV. Sólo se usa cuando harvest==’report’.
  • export_path (str) – Path a un archivo JSON o directorio donde exportar los catálogos filtrados. Si termina en ”.json” se exportará la lista de catálogos a un único archivo. Si es un directorio, se guardará en él un JSON por catálogo. Si se especifica export_path, el método no devolverá nada.
Devuelve:

Lista de catálogos.

Tipo del valor devuelto:
 

list of dicts

generate_harvester_config(catalogs=None, harvest=u'valid', report=None, export_path=None)[fuente]

Genera un archivo de configuración del harvester a partir de un reporte, o de un conjunto de catálogos y un criterio de cosecha (harvest).

Parámetros:
  • catalogs (str, dict o list) – Uno (str o dict) o varios (list de strs y/o dicts) catálogos.
  • harvest (str) – Criterio para determinar qué datasets incluir en el archivo de configuración generado (‘all’, ‘none’, ‘valid’, ‘report’ o ‘good’).
  • report (list o str) – Tabla de reporte generada por generate_datasets_report() como lista de diccionarios o archivo en formato XLSX o CSV. Sólo se usa cuando harvest==’report’, en cuyo caso catalogs se ignora.
  • export_path (str) – Path donde exportar el reporte generado (en formato XLSX o CSV). Si se especifica, el método no devolverá nada.
Devuelve:

Un diccionario con variables de configuración

por cada dataset a cosechar.

Tipo del valor devuelto:
 

list of dicts

get_catalog_metadata(catalog, exclude_meta_fields=None)

Devuelve sólo la metadata de nivel catálogo.

get_dataset(catalog, identifier=None, title=None)
get_datasets(catalog, filter_in=None, filter_out=None, meta_field=None, exclude_meta_fields=None, only_time_series=False)
get_distribution(catalog, identifier=None, title=None, dataset_identifier=None)
get_distributions(catalog, filter_in=None, filter_out=None, meta_field=None, exclude_meta_fields=None, only_time_series=False)
get_field(catalog, identifier=None, title=None, distribution_identifier=None)
get_field_location(catalog, identifier=None, title=None, distribution_identifier=None)
get_fields(catalog, filter_in=None, filter_out=None, meta_field=None, only_time_series=False)
get_theme(catalog, identifier=None, label=None)
get_themes(catalog)
get_time_series(catalog, **kwargs)
harvest_catalog_to_ckan(catalog, portal_url, apikey, catalog_id, dataset_list=None, owner_org=None)

Federa los datasets de un catálogo al portal pasado por parámetro.

Parámetros:
  • catalog (DataJson) – El catálogo de origen que se federa.
  • portal_url (str) – La URL del portal CKAN de destino.
  • apikey (str) – La apikey de un usuario con los permisos que le permitan crear o actualizar el dataset.
  • catalog_id (str) – El prefijo con el que va a preceder el id del dataset en catálogo destino.
  • dataset_list (list(str)) – Los ids de los datasets a federar. Si no se pasa una lista, todos los datasests se federan.
  • owner_org (str) – La organización a la cual pertencen los datasets. Si no se pasa, se utiliza el catalog_id.
Devuelve:

El id del dataset en el catálogo de destino.

Tipo del valor devuelto:
 

str

harvest_dataset_to_ckan(catalog, owner_org, dataset_origin_identifier, portal_url, apikey, catalog_id)

Federa la metadata de un dataset en el portal pasado por parámetro.

Parámetros:
  • catalog (DataJson) – El catálogo de origen que contiene el dataset.
  • owner_org (str) – La organización a la cual pertence el dataset.
  • dataset_origin_identifier (str) – El id del dataset que se va a restaurar.
  • portal_url (str) – La URL del portal CKAN de destino.
  • apikey (str) – La apikey de un usuario con los permisos que le permitan crear o actualizar el dataset.
  • catalog_id (str) – El id que prep
Devuelve:

El id del dataset restaurado.

Tipo del valor devuelto:
 

str

is_valid_catalog(catalog=None)[fuente]
make_catalog_backup(catalog, catalog_id=None, local_catalogs_dir=u'', include_metadata=True, include_data=True, include_metadata_xlsx=True)

Realiza una copia local de los datos y metadatos de un catálogo.

Parámetros:
  • catalog (dict or str) – Representación externa/interna de un catálogo. Una representación _externa_ es un path local o una URL remota a un archivo con la metadata de un catálogo, en formato JSON o XLSX. La representación _interna_ de un catálogo es un diccionario.
  • catalog_id (str) – Si se especifica, se usa este identificador para el backup. Si no se espedifica, se usa catalog[“identifier”].
  • local_catalogs_dir (str) – Directorio local en el cual se va a crear la carpeta “catalog/...” con todos los catálogos.
  • include_metadata (bool) – Si es verdadero, se generan los archivos data.json y catalog.xlsx.
  • include_data (bool) – Si es verdadero, se descargan todas las distribuciones de todos los catálogos.
Devuelve:

None

make_catalogs_backup(catalogs=None, local_catalogs_dir=u'.', copy_metadata=True, copy_data=True)[fuente]

Realiza copia de los datos y metadatos de uno o más catálogos.

Parámetros:
  • catalogs (list or dict) –

    Lista de catálogos (elementos que pueden ser interpretados por DataJson como catálogos) o diccionario donde las keys se interpretan como los catalog_identifier:

    Cuando es una lista, los ids se toman de catalog_identifer, y se ignoran los catálogos que no tengan catalog_identifier. Cuando se pasa un diccionario, los keys reemplazan a los catalog_identifier (estos no se leeen).

  • local_catalogs_dir (str) – Directorio local en el cual se va a crear la carpeta “catalog/...” con todos los catálogos.
  • copy_metadata (bool) – Si es verdadero, se generan los archivos data.json y catalog.xlsx.
  • copy_data (bool) – Si es verdadero, se descargan todas las distribuciones de todos los catálogos.
Devuelve:

None

push_dataset_to_ckan(catalog, owner_org, dataset_origin_identifier, portal_url, apikey, catalog_id=None, demote_superThemes=True, demote_themes=True)

Escribe la metadata de un dataset en el portal pasado por parámetro.

Parámetros:
  • catalog (DataJson) – El catálogo de origen que contiene el dataset.
  • owner_org (str) – La organización a la cual pertence el dataset.
  • dataset_origin_identifier (str) – El id del dataset que se va a federar.
  • portal_url (str) – La URL del portal CKAN de destino.
  • apikey (str) – La apikey de un usuario con los permisos que le permitan crear o actualizar el dataset.
  • catalog_id (str) – El prefijo con el que va a preceder el id del dataset en catálogo destino.
  • demote_superThemes (bool) – Si está en true, los ids de los super themes del dataset, se propagan como grupo.
  • demote_themes (bool) – Si está en true, los labels de los themes del dataset, pasan a ser tags. Sino, se pasan como grupo.
Devuelve:

El id del dataset en el catálogo de destino.

Tipo del valor devuelto:
 

str

push_new_themes(catalog, portal_url, apikey)

Toma un catálogo y escribe los temas de la taxonomía que no están presentes.

Args:
catalog (DataJson): El catálogo de origen que contiene la
taxonomía.

portal_url (str): La URL del portal CKAN de destino. apikey (str): La apikey de un usuario con los permisos que le

permitan crear o actualizar el dataset.
Returns:
str: Los ids de los temas creados.
push_theme_to_ckan(catalog, portal_url, apikey, identifier=None, label=None)

Escribe la metadata de un theme en el portal pasado por parámetro.

Parámetros:
  • catalog (DataJson) – El catálogo de origen que contiene el theme.
  • portal_url (str) – La URL del portal CKAN de destino.
  • apikey (str) – La apikey de un usuario con los permisos que le permitan crear o actualizar el dataset.
  • identifier (str) – El identificador para buscar el theme en la taxonomia.
  • label (str) – El label para buscar el theme en la taxonomia.
Devuelve:

El name del theme en el catálogo de destino.

Tipo del valor devuelto:
 

str

remove_dataset(identifier)[fuente]
remove_distribution(identifier, dataset_identifier=None)[fuente]
remove_harvested_ds_from_ckan(catalog, portal_url, apikey, catalog_id=None, original_ids=None)
restore_catalog_to_ckan(catalog, owner_org, portal_url, apikey, dataset_list=None)

Restaura los datasets de un catálogo al portal pasado por parámetro. Si hay temas presentes en el DataJson que no están en el portal de CKAN, los genera.

Parámetros:
  • catalog (DataJson) – El catálogo de origen que se restaura.
  • portal_url (str) – La URL del portal CKAN de destino.
  • apikey (str) – La apikey de un usuario con los permisos que le permitan crear o actualizar el dataset.
  • dataset_list (list(str)) – Los ids de los datasets a restaurar. Si no se pasa una lista, todos los datasests se restauran.
  • owner_org (str) – La organización a la cual pertencen los datasets. Si no se pasa, se utiliza el catalog_id.
Devuelve:

El id del dataset en el catálogo de destino.

Tipo del valor devuelto:
 

str

restore_dataset_to_ckan(catalog, owner_org, dataset_origin_identifier, portal_url, apikey)

Restaura la metadata de un dataset en el portal pasado por parámetro.

Parámetros:
  • catalog (DataJson) – El catálogo de origen que contiene el dataset.
  • owner_org (str) – La organización a la cual pertence el dataset.
  • dataset_origin_identifier (str) – El id del dataset que se va a restaurar.
  • portal_url (str) – La URL del portal CKAN de destino.
  • apikey (str) – La apikey de un usuario con los permisos que le permitan crear o actualizar el dataset.
Devuelve:

El id del dataset restaurado.

Tipo del valor devuelto:
 

str

themes
time_series
to_json(catalog, path)

Función de compatibilidad con releases anteriores.

to_xlsx(catalog, path, xlsx_fields=None)

Función de compatibilidad con releases anteriores.

validate_catalog(catalog=None, only_errors=False, fmt=u'dict', export_path=None)[fuente]
pydatajson.core.main()[fuente]

Permite ejecutar el módulo por línea de comandos.

Valida un path o url a un archivo data.json devolviendo True/False si es válido y luego el resultado completo.

Example

python pydatajson.py http://181.209.63.71/data.json python pydatajson.py ~/github/pydatajson/tests/samples/full_data.json

pydatajson.custom_exceptions module

Excepciones personalizadas para validación y registro de errores

exception pydatajson.custom_exceptions.BaseNonExistentError[fuente]

Bases: exceptions.ValueError

El id de una entidad no existe en el catálogo.

get_msg(entity_name, entity_type, entity_id)[fuente]
exception pydatajson.custom_exceptions.BaseRepetitionError[fuente]

Bases: exceptions.ValueError

El id de una entidad está repetido en el catálogo.

get_msg(entity_name, entity_type, entity_id=None, repeated_entities=None)[fuente]
exception pydatajson.custom_exceptions.BaseUnexpectedValue[fuente]

Bases: exceptions.ValueError

El id de una entidad está repetido en el catálogo.

get_msg(entity_name, entity_id, value_type, value_found, value_expected)[fuente]
class pydatajson.custom_exceptions.BaseValidationError(validator, message, validator_value, path, instance=None)[fuente]

Bases: object

Estructura para errores de validación personalizados.

exception pydatajson.custom_exceptions.DatasetIdNonExistentError(dataset_id)[fuente]

Bases: pydatajson.custom_exceptions.BaseNonExistentError

exception pydatajson.custom_exceptions.DatasetIdRepetitionError(dataset_id=None, repeated_datasets=None)[fuente]

Bases: pydatajson.custom_exceptions.BaseRepetitionError

exception pydatajson.custom_exceptions.DatasetTemporalMetadataError(temporal)[fuente]

Bases: exceptions.ValueError

exception pydatajson.custom_exceptions.DatasetUnexpectedTitle(dataset_id, title_found, title_expected)[fuente]

Bases: pydatajson.custom_exceptions.BaseUnexpectedValue

exception pydatajson.custom_exceptions.DistributionIdNonExistentError(distribution_id)[fuente]

Bases: pydatajson.custom_exceptions.BaseNonExistentError

exception pydatajson.custom_exceptions.DistributionIdRepetitionError(distribution_id=None, repeated_distributions=None)[fuente]

Bases: pydatajson.custom_exceptions.BaseRepetitionError

exception pydatajson.custom_exceptions.DistributionTitleNonExistentError(distribution_title, dataset_id, extra_msg=u'')[fuente]

Bases: pydatajson.custom_exceptions.BaseNonExistentError

exception pydatajson.custom_exceptions.DistributionTitleRepetitionError(distribution_title, repeated_distributions, extra_msg=u'')[fuente]

Bases: pydatajson.custom_exceptions.BaseRepetitionError

exception pydatajson.custom_exceptions.DistributionUnexpectedTitle(distribution_id, title_found, title_expected)[fuente]

Bases: pydatajson.custom_exceptions.BaseUnexpectedValue

class pydatajson.custom_exceptions.DownloadURLRepetitionError(repeated_urls)[fuente]

Bases: pydatajson.custom_exceptions.BaseValidationError

class pydatajson.custom_exceptions.ExtensionError(dataset_idx, distribution_idx, distribution, attribute)[fuente]

Bases: pydatajson.custom_exceptions.BaseValidationError

exception pydatajson.custom_exceptions.FieldDescriptionRepetitionError(field_desc=None, repeated_fields=None)[fuente]

Bases: pydatajson.custom_exceptions.BaseRepetitionError

Hay un campo repetido en la distribución.

exception pydatajson.custom_exceptions.FieldFewValuesError(field, positive_values, minimum_values)[fuente]

Bases: exceptions.ValueError

exception pydatajson.custom_exceptions.FieldIdNonExistentError(field_id)[fuente]

Bases: pydatajson.custom_exceptions.BaseNonExistentError

exception pydatajson.custom_exceptions.FieldIdRepetitionError(field_id=None, repeated_fields=None)[fuente]

Bases: pydatajson.custom_exceptions.BaseRepetitionError

exception pydatajson.custom_exceptions.FieldTitleNonExistentError(field_title)[fuente]

Bases: pydatajson.custom_exceptions.BaseNonExistentError

exception pydatajson.custom_exceptions.FieldTitleRepetitionError(field_title=None, repeated_fields=None)[fuente]

Bases: pydatajson.custom_exceptions.BaseRepetitionError

Hay un campo repetido en la distribución.

exception pydatajson.custom_exceptions.FieldTitleTooLongError(field, field_len, max_field_len)[fuente]

Bases: exceptions.ValueError

exception pydatajson.custom_exceptions.FieldTooManyMissingsError(field, missing_values, positive_values)[fuente]

Bases: exceptions.ValueError

exception pydatajson.custom_exceptions.HeaderNotBlankOrIdError(worksheet, header_coord, header_value, ws_header_value)[fuente]

Bases: exceptions.ValueError

exception pydatajson.custom_exceptions.InvalidFieldTitleError(field, char, valid_field_chars)[fuente]

Bases: exceptions.ValueError

class pydatajson.custom_exceptions.ThemeIdRepeated(repeated_ids)[fuente]

Bases: pydatajson.custom_exceptions.BaseValidationError

class pydatajson.custom_exceptions.ThemeLabelRepeated(repeated_labels)[fuente]

Bases: pydatajson.custom_exceptions.BaseValidationError

exception pydatajson.custom_exceptions.ThemeTaxonomyNonExistentError(dataset_id)[fuente]

Bases: exceptions.Exception

exception pydatajson.custom_exceptions.TimeIndexFutureTimeValueError(iso_time_value, iso_now)[fuente]

Bases: exceptions.ValueError

exception pydatajson.custom_exceptions.TimeIndexTooShortError(iso_end_index, iso_half_temporal, temporal)[fuente]

Bases: exceptions.ValueError

exception pydatajson.custom_exceptions.TimeValueBeforeTemporalError(iso_time_value, iso_ini_temporal)[fuente]

Bases: exceptions.ValueError

pydatajson.documentation module

Módulo ‘documentation’ de Pydatajson

Contiene métodos para generar documentación en markdown de distintos componentes de un catálogo.

pydatajson.documentation.dataset_to_markdown(dataset)[fuente]

Genera texto en markdown a partir de los metadatos de una dataset.

Parámetros:dataset (dict) – Diccionario con metadatos de una dataset.
Devuelve:Texto que describe una dataset.
Tipo del valor devuelto:
 str
pydatajson.documentation.distribution_to_markdown(distribution)[fuente]

Genera texto en markdown a partir de los metadatos de una distribution.

Parámetros:distribution (dict) – Diccionario con metadatos de una distribution.
Devuelve:Texto que describe una distribution.
Tipo del valor devuelto:
 str
pydatajson.documentation.field_to_markdown(field)[fuente]

Genera texto en markdown a partir de los metadatos de un field.

Parámetros:field (dict) – Diccionario con metadatos de un field.
Devuelve:Texto que describe un field.
Tipo del valor devuelto:
 str

pydatajson.download module

Módulo ‘download’ de pydatajson

Contiene métodos para descargar archivos a través del protocolo HTTP.

pydatajson.download.download(url, tries=1, retry_delay=1, try_timeout=None, proxies=None, verify=True)[fuente]

Descarga un archivo a través del protocolo HTTP, en uno o más intentos.

Parámetros:
  • url (str) – URL (schema HTTP) del archivo a descargar.
  • tries (int) – Intentos a realizar (default: 1).
  • retry_delay (int o float) – Tiempo a esperar, en segundos, entre cada intento.
  • try_timeout (int o float) – Tiempo máximo a esperar por intento.
  • proxies (dict) – Proxies a utilizar. El diccionario debe contener los valores ‘http’ y ‘https’, cada uno asociados a la URL del proxy correspondiente.
Devuelve:

Contenido del archivo

Tipo del valor devuelto:
 

bytes

pydatajson.download.download_to_file(url, file_path, **kwargs)[fuente]

Descarga un archivo a través del protocolo HTTP, en uno o más intentos, y escribe el contenido descargado el el path especificado.

Parámetros:
  • url (str) – URL (schema HTTP) del archivo a descargar.
  • file_path (str) – Path del archivo a escribir. Si un archivo ya existe en el path especificado, se sobrescribirá con nuevos contenidos.
  • kwargs – Parámetros para download().

pydatajson.federation module

Extensión de pydatajson para la federación de metadatos de datasets a través de la API de CKAN.

pydatajson.federation.harvest_catalog_to_ckan(catalog, portal_url, apikey, catalog_id, dataset_list=None, owner_org=None)[fuente]

Federa los datasets de un catálogo al portal pasado por parámetro.

Parámetros:
  • catalog (DataJson) – El catálogo de origen que se federa.
  • portal_url (str) – La URL del portal CKAN de destino.
  • apikey (str) – La apikey de un usuario con los permisos que le permitan crear o actualizar el dataset.
  • catalog_id (str) – El prefijo con el que va a preceder el id del dataset en catálogo destino.
  • dataset_list (list(str)) – Los ids de los datasets a federar. Si no se pasa una lista, todos los datasests se federan.
  • owner_org (str) – La organización a la cual pertencen los datasets. Si no se pasa, se utiliza el catalog_id.
Devuelve:

El id del dataset en el catálogo de destino.

Tipo del valor devuelto:
 

str

pydatajson.federation.harvest_dataset_to_ckan(catalog, owner_org, dataset_origin_identifier, portal_url, apikey, catalog_id)[fuente]

Federa la metadata de un dataset en el portal pasado por parámetro.

Parámetros:
  • catalog (DataJson) – El catálogo de origen que contiene el dataset.
  • owner_org (str) – La organización a la cual pertence el dataset.
  • dataset_origin_identifier (str) – El id del dataset que se va a restaurar.
  • portal_url (str) – La URL del portal CKAN de destino.
  • apikey (str) – La apikey de un usuario con los permisos que le permitan crear o actualizar el dataset.
  • catalog_id (str) – El id que prep
Devuelve:

El id del dataset restaurado.

Tipo del valor devuelto:
 

str

pydatajson.federation.push_dataset_to_ckan(catalog, owner_org, dataset_origin_identifier, portal_url, apikey, catalog_id=None, demote_superThemes=True, demote_themes=True)[fuente]

Escribe la metadata de un dataset en el portal pasado por parámetro.

Parámetros:
  • catalog (DataJson) – El catálogo de origen que contiene el dataset.
  • owner_org (str) – La organización a la cual pertence el dataset.
  • dataset_origin_identifier (str) – El id del dataset que se va a federar.
  • portal_url (str) – La URL del portal CKAN de destino.
  • apikey (str) – La apikey de un usuario con los permisos que le permitan crear o actualizar el dataset.
  • catalog_id (str) – El prefijo con el que va a preceder el id del dataset en catálogo destino.
  • demote_superThemes (bool) – Si está en true, los ids de los super themes del dataset, se propagan como grupo.
  • demote_themes (bool) – Si está en true, los labels de los themes del dataset, pasan a ser tags. Sino, se pasan como grupo.
Devuelve:

El id del dataset en el catálogo de destino.

Tipo del valor devuelto:
 

str

pydatajson.federation.push_new_themes(catalog, portal_url, apikey)[fuente]

Toma un catálogo y escribe los temas de la taxonomía que no están presentes.

Args:
catalog (DataJson): El catálogo de origen que contiene la
taxonomía.

portal_url (str): La URL del portal CKAN de destino. apikey (str): La apikey de un usuario con los permisos que le

permitan crear o actualizar el dataset.
Returns:
str: Los ids de los temas creados.
pydatajson.federation.push_theme_to_ckan(catalog, portal_url, apikey, identifier=None, label=None)[fuente]

Escribe la metadata de un theme en el portal pasado por parámetro.

Parámetros:
  • catalog (DataJson) – El catálogo de origen que contiene el theme.
  • portal_url (str) – La URL del portal CKAN de destino.
  • apikey (str) – La apikey de un usuario con los permisos que le permitan crear o actualizar el dataset.
  • identifier (str) – El identificador para buscar el theme en la taxonomia.
  • label (str) – El label para buscar el theme en la taxonomia.
Devuelve:

El name del theme en el catálogo de destino.

Tipo del valor devuelto:
 

str

pydatajson.federation.remove_dataset_from_ckan(identifier, portal_url, apikey)[fuente]
pydatajson.federation.remove_datasets_from_ckan(portal_url, apikey, filter_in=None, filter_out=None, only_time_series=False, organization=None)[fuente]

Borra un dataset en el portal pasado por parámetro.

Parámetros:
  • portal_url (str) – La URL del portal CKAN de destino.
  • apikey (str) – La apikey de un usuario con los permisos que le permitan borrar el dataset.
  • filter_in (dict) – Diccionario de filtrado positivo, similar al de search.get_datasets.
  • filter_out (dict) – Diccionario de filtrado negativo, similar al de search.get_datasets.
  • only_time_series (bool) – Filtrar solo los datasets que tengan recursos con series de tiempo.
  • organization (str) – Filtrar solo los datasets que pertenezcan a cierta organizacion.
Devuelve:

None

pydatajson.federation.remove_harvested_ds_from_ckan(catalog, portal_url, apikey, catalog_id=None, original_ids=None)[fuente]
pydatajson.federation.restore_catalog_to_ckan(catalog, owner_org, portal_url, apikey, dataset_list=None)[fuente]

Restaura los datasets de un catálogo al portal pasado por parámetro. Si hay temas presentes en el DataJson que no están en el portal de CKAN, los genera.

Parámetros:
  • catalog (DataJson) – El catálogo de origen que se restaura.
  • portal_url (str) – La URL del portal CKAN de destino.
  • apikey (str) – La apikey de un usuario con los permisos que le permitan crear o actualizar el dataset.
  • dataset_list (list(str)) – Los ids de los datasets a restaurar. Si no se pasa una lista, todos los datasests se restauran.
  • owner_org (str) – La organización a la cual pertencen los datasets. Si no se pasa, se utiliza el catalog_id.
Devuelve:

El id del dataset en el catálogo de destino.

Tipo del valor devuelto:
 

str

pydatajson.federation.restore_dataset_to_ckan(catalog, owner_org, dataset_origin_identifier, portal_url, apikey)[fuente]

Restaura la metadata de un dataset en el portal pasado por parámetro.

Parámetros:
  • catalog (DataJson) – El catálogo de origen que contiene el dataset.
  • owner_org (str) – La organización a la cual pertence el dataset.
  • dataset_origin_identifier (str) – El id del dataset que se va a restaurar.
  • portal_url (str) – La URL del portal CKAN de destino.
  • apikey (str) – La apikey de un usuario con los permisos que le permitan crear o actualizar el dataset.
Devuelve:

El id del dataset restaurado.

Tipo del valor devuelto:
 

str

pydatajson.helpers module

Métodos auxiliares

pydatajson.helpers.add_dicts(one_dict, other_dict)[fuente]

Suma clave a clave los dos diccionarios. Si algún valor es un diccionario, llama recursivamente a la función. Ambos diccionarios deben tener exactamente las mismas claves, y los valores asociados deben ser sumables, o diccionarios.

Parámetros:
  • one_dict (dict) –
  • other_dict (dict) –
Devuelve:

resultado de la suma

Tipo del valor devuelto:
 

dict

pydatajson.helpers.clean_str(s)[fuente]
pydatajson.helpers.ensure_dir_exists(directory)[fuente]

Se asegura de que un directorio exista.

pydatajson.helpers.find_ws_name(wb, name)[fuente]

Busca una hoja en un workbook sin importar mayúsculas/minúsculas.

pydatajson.helpers.get_ws_case_insensitive(wb, title)[fuente]

Devuelve una hoja en un workbook sin importar mayúsculas/minúsculas.

pydatajson.helpers.is_list_of_matching_dicts(list_of_dicts, expected_keys=None)[fuente]

Comprueba que una lista esté compuesta únicamente por diccionarios, que comparten exactamente las mismas claves.

Parámetros:
  • list_of_dicts (list) – Lista de diccionarios a comparar.
  • expected_keys (set) – Conjunto de las claves que cada diccionario debe tener. Si no se incluye, se asume que son las claves del primer diccionario de la lista.
Devuelve:

True si todos los diccionarios comparten sus claves.

Tipo del valor devuelto:
 

bool

pydatajson.helpers.parse_date_string(date_string)[fuente]

Parsea un string de una fecha con el formato de la norma ISO 8601 (es decir, las fechas utilizadas en los catálogos) en un objeto datetime de la librería estándar de python. Se tiene en cuenta únicamente la fecha y se ignora completamente la hora.

Parámetros:date_string (str) – fecha con formato ISO 8601.
Devuelve:objeto fecha especificada por date_string.
Tipo del valor devuelto:
 datetime
pydatajson.helpers.parse_repeating_time_interval(date_str, to=u'days')[fuente]
pydatajson.helpers.parse_repeating_time_interval_to_days(date_str)[fuente]

Parsea un string con un intervalo de tiempo con repetición especificado por la norma ISO 8601 en una cantidad de días que representa ese intervalo. Devuelve 0 en caso de que el intervalo sea inválido.

pydatajson.helpers.parse_repeating_time_interval_to_str(date_str)[fuente]

Devuelve descripción humana de un intervalo de repetición.

TODO: Por ahora sólo interpreta una lista fija de intervalos. Debería poder parsear cualquier caso.

pydatajson.helpers.parse_value(cell)[fuente]

Extrae el valor de una celda de Excel como texto.

pydatajson.helpers.pprint(result)[fuente]
pydatajson.helpers.sheet_to_table(worksheet)[fuente]

Transforma una hoja de libro de Excel en una lista de diccionarios.

Parámetros:worksheet (Workbook.worksheet) – Hoja de cálculo de un archivo XLSX según los lee openpyxl
Devuelve:
Lista de diccionarios, con tantos elementos como
registros incluya la hoja, y con tantas claves por diccionario como campos tenga la hoja.
Tipo del valor devuelto:
 list_of_dicts
pydatajson.helpers.string_to_list(string, sep=u', ')[fuente]

Transforma una string con elementos separados por sep en una lista.

pydatajson.helpers.title_to_name(title, decode=True, max_len=None, use_complete_words=True)[fuente]

Convierte un título en un nombre normalizado para generar urls.

pydatajson.helpers.traverse_dict(dicc, keys, default_value=None)[fuente]

Recorre un diccionario siguiendo una lista de claves, y devuelve default_value en caso de que alguna de ellas no exista.

Parámetros:
  • dicc (dict) – Diccionario a ser recorrido.
  • keys (list) – Lista de claves a ser recorrida. Puede contener índices de listas y claves de diccionarios mezcladas.
  • default_value – Valor devuelto en caso de que dicc no se pueda recorrer siguiendo secuencialmente la lista de keys hasta el final.
Devuelve:

El valor obtenido siguiendo la lista de keys dentro de dicc.

Tipo del valor devuelto:
 

object

pydatajson.helpers.validate_url(uri_string)[fuente]

Valida si un string es una URI válida.

pydatajson.indicators module

Módulo ‘indicators’ de Pydatajson

Contiene los métodos para monitorear y generar indicadores de un catálogo o de una red de catálogos.

pydatajson.indicators.datasets_equal(dataset, other, fields_dataset=None, fields_distribution=None, return_diff=False)[fuente]

Función de igualdad de dos datasets: se consideran iguales si los valores de los campos ‘title’, ‘publisher.name’, ‘accrualPeriodicity’ e ‘issued’ son iguales en ambos.

Parámetros:
  • dataset (dict) – un dataset, generado por la lectura de un catálogo
  • other (dict) – idem anterior
Devuelve:

True si son iguales, False en caso contrario

Tipo del valor devuelto:
 

bool

pydatajson.indicators.generate_catalogs_indicators(catalogs, central_catalog=None, validator=None)[fuente]

Genera una lista de diccionarios con varios indicadores sobre los catálogos provistos, tales como la cantidad de datasets válidos, días desde su última fecha actualizada, entre otros.

Parámetros:
  • catalogs (str o list) – uno o más catalogos sobre los que se quiera obtener indicadores
  • central_catalog (str) – catálogo central sobre el cual comparar los datasets subidos en la lista anterior. De no pasarse no se generarán indicadores de federación de datasets.
Devuelve:

2 elementos, el primero una lista de diccionarios con los

indicadores esperados, uno por catálogo pasado, y el segundo un diccionario con indicadores a nivel global, datos sobre la lista entera en general.

Tipo del valor devuelto:
 

tuple

pydatajson.readers module

Módulo ‘readers’ de Pydatajson

Contiene los métodos auxiliares para leer archivos con información tabular y catálogos de metadatos, en distintos fomatos.

pydatajson.readers.apply_default_values(catalog, default_values)[fuente]

Aplica valores default a los campos de un catálogo.

Si el campo está vacío, aplica el default. Si tiene un valor, deja el valor que estaba. Sólo soporta defaults para las siguientes clases:

catalog dataset distribution field
Parámetros:
  • catalog (dict) – Un catálogo.
  • default_values (dict) –

    Valores default para algunos de los campos del catálogo. {

    “dataset_issued”: “2017-06-22”, “distribution_issued”: “2017-06-22”

    }

pydatajson.readers.read_catalog(catalog, default_values=None)[fuente]

Toma una representación cualquiera de un catálogo, y devuelve su representación interna (un diccionario de Python con su metadata.)

Si recibe una representación _interna_ (un diccionario), lo devuelve intacto. Si recibe una representación _externa_ (path/URL a un archivo JSON/XLSX), devuelve su represetación interna, es decir, un diccionario.

Parámetros:catalog (dict or str) – Representación externa/interna de un catálogo. Una representación _externa_ es un path local o una URL remota a un archivo con la metadata de un catálogo, en formato JSON o XLSX. La representación _interna_ de un catálogo es un diccionario.
Devuelve:Representación interna de un catálogo para uso en las funciones de esta librería.
Tipo del valor devuelto:
 dict
pydatajson.readers.read_catalog_obj(catalog)[fuente]
pydatajson.readers.read_json(json_path_or_url)[fuente]

Toma el path a un JSON y devuelve el diccionario que representa.

Se asume que el parámetro es una URL si comienza con ‘http’ o ‘https’, o un path local de lo contrario.

Parámetros:json_path_or_url (str) – Path local o URL remota a un archivo de texto plano en formato JSON.
Devuelve:El diccionario que resulta de deserializar json_path_or_url.
Tipo del valor devuelto:
 dict
pydatajson.readers.read_local_xlsx_catalog(xlsx_path, logger=None)[fuente]

Genera un diccionario de metadatos de catálogo a partir de un XLSX bien formado.

Parámetros:xlsx_path (str) – Path a un archivo XLSX “template” para describir la metadata de un catálogo.
Devuelve:Diccionario con los metadatos de un catálogo.
Tipo del valor devuelto:
 dict
pydatajson.readers.read_table(path)[fuente]

Lee un archivo tabular (CSV o XLSX) a una lista de diccionarios.

La extensión del archivo debe ser ”.csv” o ”.xlsx”. En función de ella se decidirá el método a usar para leerlo.

Si recibe una lista, comprueba que todos sus diccionarios tengan las mismas claves y de ser así, la devuelve intacta. Levanta una Excepción en caso contrario.

Parámetros:path (str o list) – Como ‘str’, path a un archivo CSV o XLSX.
Devuelve:Lista de diccionarios con claves idénticas representando el archivo original.
Tipo del valor devuelto:
 list
pydatajson.readers.read_xlsx_catalog(xlsx_path_or_url, logger=None)[fuente]

Toma el path a un catálogo en formato XLSX y devuelve el diccionario que representa.

Se asume que el parámetro es una URL si comienza con ‘http’ o ‘https’, o un path local de lo contrario.

Parámetros:xlsx_path_or_url (str) – Path local o URL remota a un libro XLSX de formato específico para guardar los metadatos de un catálogo.
Devuelve:El diccionario que resulta de procesar xlsx_path_or_url.
Tipo del valor devuelto:
 dict

pydatajson.reporting module

Módulo ‘reporting’ de Pydatajson

Contiene los métodos para generar reportes sobre un catálogo.

pydatajson.reporting.generate_datasets_summary(catalog, export_path=None, validator=None)[fuente]

Genera un informe sobre los datasets presentes en un catálogo, indicando para cada uno:

  • Índice en la lista catalog[“dataset”]
  • Título
  • Identificador
  • Cantidad de distribuciones
  • Estado de sus metadatos [“OK”|”ERROR”]

Es utilizada por la rutina diaria de libreria-catalogos para reportar sobre los datasets de los catálogos mantenidos.

Parámetros:
  • catalog (str o dict) – Path a un catálogo en cualquier formato, JSON, XLSX, o diccionario de python.
  • export_path (str) – Path donde exportar el informe generado (en formato XLSX o CSV). Si se especifica, el método no devolverá nada.
Devuelve:

Contiene tantos dicts como datasets estén presentes en catalogs, con los datos antes mencionados.

Tipo del valor devuelto:
 

list

pydatajson.search module

Módulo ‘search’ de Pydatajson

Contiene los métodos para navegar un data.json iterando y buscando entidades de un catálogo.

pydatajson.search.get_catalog_metadata(catalog, exclude_meta_fields=None)[fuente]

Devuelve sólo la metadata de nivel catálogo.

pydatajson.search.get_dataset(catalog, identifier=None, title=None)[fuente]
pydatajson.search.get_datasets(catalog, filter_in=None, filter_out=None, meta_field=None, exclude_meta_fields=None, only_time_series=False)[fuente]
pydatajson.search.get_distribution(catalog, identifier=None, title=None, dataset_identifier=None)[fuente]
pydatajson.search.get_distributions(catalog, filter_in=None, filter_out=None, meta_field=None, exclude_meta_fields=None, only_time_series=False)[fuente]
pydatajson.search.get_field(catalog, identifier=None, title=None, distribution_identifier=None)[fuente]
pydatajson.search.get_field_location(catalog, identifier=None, title=None, distribution_identifier=None)[fuente]
pydatajson.search.get_fields(catalog, filter_in=None, filter_out=None, meta_field=None, only_time_series=False)[fuente]
pydatajson.search.get_theme(catalog, identifier=None, label=None)[fuente]
pydatajson.search.get_themes(catalog)[fuente]
pydatajson.search.get_time_series(catalog, **kwargs)[fuente]

pydatajson.time_series module

Módulo time_series de pydatajson

Contiene funciones auxiliares para analizar catálogos con series de tiempo, definidas según la extensión del perfil de metadatos para series de tiempo.

pydatajson.time_series.dataset_has_time_series(dataset)[fuente]
pydatajson.time_series.distribution_has_time_index(distribution)[fuente]
pydatajson.time_series.field_is_time_series(field, distribution=None)[fuente]

pydatajson.validation module

Módulo ‘validator’ de Pydatajson

Contiene los métodos para validar el perfil de metadatos de un catálogo.

pydatajson.validation.create_validator(schema_filename=None, schema_dir=None)[fuente]

Crea el validador necesario para inicializar un objeto DataJson.

Para poder resolver referencias inter-esquemas, un Validador requiere que se especifique un RefResolver (Resolvedor de Referencias) con el directorio base (absoluto) y el archivo desde el que se referencia el directorio.

Para poder validar formatos, un Validador requiere que se provea explícitamente un FormatChecker. Actualmente se usa el default de la librería, jsonschema.FormatChecker().

Parámetros:
  • schema_filename (str) – Nombre del archivo que contiene el esquema validador “maestro”.
  • schema_dir (str) – Directorio (absoluto) donde se encuentra el esquema validador maestro y sus referencias, de tenerlas.
Devuelve:

Un validador de JSONSchema Draft #4. El validador

se crea con un RefResolver que resuelve referencias de schema_filename dentro de schema_dir.

Tipo del valor devuelto:
 

Draft4Validator

pydatajson.validation.format_matches_extension(distribution, attribute)[fuente]

Chequea si una extensión podría corresponder a un formato dado.

pydatajson.validation.is_valid_catalog(catalog, validator=None)[fuente]

Valida que un archivo data.json cumpla con el schema definido.

Chequea que el data.json tiene todos los campos obligatorios y que tanto los campos obligatorios como los opcionales siguen la estructura definida en el schema.

Parámetros:catalog (str o dict) – Catálogo (dict, JSON o XLSX) a ser validado.
Devuelve:True si el data.json cumple con el schema, sino False.
Tipo del valor devuelto:
 bool
pydatajson.validation.iter_custom_errors(catalog)[fuente]

Realiza validaciones sin usar el jsonschema.

En esta función se agregan bloques de código en python que realizan validaciones complicadas o imposibles de especificar usando jsonschema.

pydatajson.validation.validate_catalog(catalog, only_errors=False, fmt=u'dict', export_path=None, validator=None)[fuente]

Analiza un data.json registrando los errores que encuentra.

Chequea que el data.json tiene todos los campos obligatorios y que tanto los campos obligatorios como los opcionales siguen la estructura definida en el schema.

Parámetros:
  • catalog (str o dict) – Catálogo (dict, JSON o XLSX) a ser validado.
  • only_errors (bool) – Si es True sólo se reportan los errores.
  • fmt (str) –

    Indica el formato en el que se desea el reporte. “dict” es el reporte más verborrágico respetando la

    estructura del data.json.
    “list” devuelve un dict con listas de errores formateados para
    generar tablas.
  • export_path (str) – Path donde exportar el reporte generado (en formato XLSX o CSV). Si se especifica, el método no devolverá nada, a pesar de que se pase algún argumento en fmt.
Devuelve:

Diccionario resumen de los errores encontrados:

{
    "status": "OK",  # resultado de la validación global
    "error": {
        "catalog": {
            "status": "OK",
            "errors": []
            "title": "Título Catalog"},
        "dataset": [
            {
                "status": "OK",
                "errors": [],
                "title": "Titulo Dataset 1"
            },
            {
                "status": "ERROR",
                "errors": [error1_info, error2_info, ...],
                "title": "Titulo Dataset 2"
            }
        ]
    }
}

Donde errorN_info es un dict con la información del N-ésimo error encontrado, con las siguientes claves: “path”, “instance”, “message”, “validator”, “validator_value”, “error_code”.

Tipo del valor devuelto:
 

dict

pydatajson.writers module

Módulo ‘writers’ de pydatajson

Contiene los métodos para escribir - diccionarios con metadatos de catálogos a formato JSON, así como - listas de diccionarios (“tablas”) en formato CSV o XLSX

pydatajson.writers.write_json(obj, path)[fuente]

Escribo un objeto a un archivo JSON con codificación UTF-8.

pydatajson.writers.write_json_catalog(catalog, path)[fuente]

Función de compatibilidad con releases anteriores.

pydatajson.writers.write_table(table, path, column_styles=None, cell_styles=None)[fuente]

Exporta una tabla en el formato deseado (CSV o XLSX).

La extensión del archivo debe ser ”.csv” o ”.xlsx”, y en función de ella se decidirá qué método usar para escribirlo.

Parámetros:
  • table (list of dicts) – Tabla a ser exportada.
  • path (str) – Path al archivo CSV o XLSX de exportación.
pydatajson.writers.write_tables(tables, path, column_styles=None, cell_styles=None, tables_fields=None, tables_names=None)[fuente]

Exporta un reporte con varias tablas en CSV o XLSX.

Si la extensión es ”.csv” se crean varias tablas agregando el nombre de la tabla al final del “path”. Si la extensión es ”.xlsx” todas las tablas se escriben en el mismo excel.

Parámetros:
  • table (dict of (list of dicts)) –

    Conjunto de tablas a ser exportadas donde {

    “table_name”: [{
    “field_name1”: “field_value1”, “field_name2”: “field_value2”, “field_name3”: “field_value3”

    }]

    }

  • path (str) – Path al archivo CSV o XLSX de exportación.
pydatajson.writers.write_xlsx_catalog(catalog, path, xlsx_fields=None)[fuente]

Función de compatibilidad con releases anteriores.

Module contents

Módulo pydatajson Conjunto de herramientas para validar y manipular la información presente en el archivo data.json de un Portal de Datos