tutorial python

Convertir Excel a json con python 3

En ocasiones tenemos que convertir un Excel o un CSV a otro formato, en esta ocasión tenía la necesidad de convertirlo en json y eran 20 archivos.

Así que me cree un pequeño programa que toma una lista de Excel, extrae la info que necesita y se pasa a json.

Librería para leer excel en python

Algo que sinceramente me daba flojera hacer es leer los csv y/o excel, para esto investigue un poco y encontré una librería para python que es una librería de análisis de datos.

Pandas es una librería que esta para python 3 y es muy sencillo de usar, solo tenemos que instalarlo en nuestro proyecto, llamar la librería y llamar el método para leer un excel o csv.

python3 -m pip install --upgrade pandas

Con esto tenemos la librería instalada en nuestro python, enseguida necesitamos otra librería para leer y ser compatible los formatos de excel (XLSX)

python3 -m pip install --upgrade xlrd

Un poco de python

Vamos a usar específicamente solo dos librerías, pandas y os.

Con os vamos a extraer una listado de los archivos que queremos modificar, para obtener esto necesitamos la siguiente línea.

lista_de_archivos = os.listdir("/Users/unprogramador/Desktop/prueba/")

Con esto ya podemos obtener un array con los nombres de los archivos, dentro de listdir colocamos la url de la carpeta que queremos escanear.

Para importar la librería de pandas y usar la librería :

import pandas as pd

Para leer un archivo excel escribimos esta línea, en caso de querer saber un poco más de esta librería dejare el link a read_excel:

data = pd.read_excel("/Users/frontend/Desktop/prueba/"+ x,usecols="A,E:F", encoding = 'utf8')

El primer parámetro pones la url del archivo a convertir, luego las columnas que necesitas extraer y al final el encoding (este es opcional).

data.to_json(path_or_buf= x+'.json',orient='records')

Con to_Json, puedes convertir en varios tipos y formas el json, path_or_buf crea un archivo en el disco y orient es el formato de creación del json.

con esto ya tenemos todo para convertir de forma masivas Excels a Jsons

[video-to-gif output image]
Convierte 5 archivos en menos de 2 segundos

Dejare el codigo para que puedan usarlo y modificarlo

# python3 -m pip install --upgrade xlrd
# python3 -m pip install --upgrade pandas
import pandas as pd
import os

lista_de_archivos = os.listdir("/Users/frontend/Desktop/prueba/")
if len(lista_de_archivos) > 0:
    print("vamos a iniciar son " + str(len(lista_de_archivos)) + " Archivos")
    for x in lista_de_archivos:
        if(x != ".DS_Store"):
            data = pd.read_excel("/Users/frontend/Desktop/prueba/"+ x,usecols="A,E:F", encoding = 'utf8')
            data.to_json(path_or_buf= x+'.json',orient='records')
    else:
        print("terminado")

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.