7 - Práctica 1: manejo avanzado de archivos en Python

Lección 7 del curso Python Nivel Avanzado.

Introducción

En la lección anterior vimos cómo realizar el manejo de archivos JSON en Python y precisamente en esta práctica usaremos esta herramienta para procesar datos directamente desde Internet.

Así que en esta primera práctica del curso usaremos lo aprendido en las lecciones anteriores para realizar la lectura y almacenamiento de archivos en diferentes formatos.

En particular veremos cómo usar Python para descargar desde la web un archivo JSON, para posteriormente procesarlo usando diccionarios en Python y finalmente almacenar este resultado del procesamiento en un archivo de texto y en un archivo tipo CSV (comma separated values).

Suscríbete y accede al código fuente y al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Planteamiento del problema

La empresa City Bike de New York ofrece el servicio de alquiler de bicicletas para desplazarse por la ciudad.

El sistema de City Bike permite fácilmente al usuario encontrar una bicicleta disponible y cerca a su ubicación, usando un sistema geo-referenciado.

Pero en el fondo estos datos geo-referenciados son almacenados en archivos JSON que podemos descargar de su sitio web.

Si tomamos un registro de este archivo, encontraremos estos campos:

Supongamos que para una cierta aplicación que queremos desarrollar nos interesa conocer el listado actualizado de estaciones que tengan bicicletas disponibles para luego generar un archivo que contenga: el nombre de la estación, el número de bicicletas disponibles y la dirección.

Objetivos de la práctica

Implementar un programa capaz de:

  1. Leer el archivo JSON directamente desde la web
  2. Procesarlo, extrayendo la información relevante para nuestra aplicación
  3. Exportar los resultados del procesamiento al formato de archivo más adecuado

Implementación

Veamos entonces paso a paso la implementación de nuestro programa.

Lectura del archivo JSON

Para leer este archivo usaremos dos módulos incluidos en la Librería Estándar de Python: urlopen y json.

El módulo urlopen nos permitirá acceder desde Python al sitio web (URL) que contiene el archivo JSON y realizar de esta forma la descarga del mismo. Posteriormente usaremos json para extraer como tal la información de interés en el formato JSON.

Procesamiento de los datos y generación de archivo de texto

Crearemos inicialmente un archivo de texto con la información requerida. Por cada diccionario dentro de la lista (es decir por cada estación) extraeremos únicamente:

Además, para incluir esta información en el archivo de texto verificaremos que haya bicicletas disponibles (el campo 'availableBikes' debe ser diferente de cero).

¡Y ya tenemos nuestro archivo de texto! Aunque no resulta fácil de leer.

Podemos agregar un formato básico para que se vea organizado por columnas, usando el método format propio de los strings en Python.

Procesamiento de los datos y generación de archivo CSV

En el caso anterior vimos que el almacenamiento de datos funciona, pero el formato escogido (TXT) no es el más adecuado pues tenemos datos en formato tabular.

Resulta más práctico usar un formato pensado especialmente para datos tabulares. Usaremos el formato CSV (comma separated values), muy usado en Ciencia de Datos y que incluso permite abrir el archivo en procesadores de hojas de cálculo como Microsoft Excel o Google Sheets.

Así que seguiremos una lógica muy similar al anterior pero cambiando el formato, lo que permitirá lograr un resultado equivalente pero con un código más compacto y más fácil de entender.

Para ello debemos usar el módulo csv (también incluido en la Librería Estándar de Python). Al implementar esta porción del código llegaremos a un resultado equivalente al obtenido en el caso del archivo de texto, pero el código es más entendible. Además podemos abrir el archivo generado en un editor de hojas de cálculo y verlo en el formato tabular, lo cual nos facilita su interpretación.

Recuerda suscribirte para acceder al código fuente y al video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Conclusión

Muy bien en esta práctica hemos incluido elementos adicionales, como la descarga de archivos directamente desde la web así como un nuevo tipo de formato, el CSV, que como veremos en otros cursos es de uso muy extendido en Ciencia de Datos y Machine Learning.

Así que con esto cerramos esta primera parte del curso y estamos listos para iniciar la segunda sección, en donde abordaremos todo lo relacionado con la Programación Orientada a Objetos en Python.

Entonces en la próxima lección veremos una introducción a la Programación Orientada a Objetos y hablaremos de algunos conceptos y terminología básica.

Ver todas las lecciones de este curso