Como escribir datos CSV en una base de datos SQLite con Python
En esta corta entrada, veremos un sencillo código que pasa datos de un archivo CSV a una tabla SQLite con las bibliotecas de Python: sqlite3 y csv.
Quizá te interese ver también algunos artículos relacionados que escribí ya hace algún tiempo:
- Crear archivos excel (xls) con Python y xlwt
- Python y SQLite3 como base de datos
- Agenda en Python con Sqlite3
- Aplicación gráfica con PyQt4 y SQLite3
- Login en Tkinter y SQLite3
Para este ejemplo, utilice un archivo .CSV con las primeras 10 posiciones de la competencia "Giro de Italia" (Ciclismo, por si alguno no conoce). Este archivo tiene 4 columnas (Posición, Nombre, Equipo y Tiempo)
Ahora, vamos al código:
#!/usr/bin/env python # -*- coding: utf-8 -*- # www.pythondiario.com import sqlite3 import csv #Abrimos el archivo CSV f=open('C:UsersAdminDesktopPosiciones.csv','r') #Omitimos la linea de encabezado next(f, None) reader = csv.reader(f, delimiter=';') #Crea la BD en la carpeta donde se encuentra el script sql = sqlite3.connect('Posiciones.db') cur = sql.cursor() #Creamos la tabla si no existe cur.execute('''CREATE TABLE IF NOT EXISTS posiciones (posicion int, nombre text, equipo text, tiempo text)''') #Llenamos la BD con los datos del CSV for row in reader: cur.execute("INSERT INTO posiciones VALUES (?, ?, ?, ?)", (row[0], row[1], row[2], row[3])) #Muestro las filas guardadas en la tabla for row in cur.execute('SELECT * FROM posiciones'): print(row) #Cerramos el archivo y la conexion a la bd f.close() sql.commit() sql.close()
Simple descripción: Primero importamos las librerías necesarias (sqlite3 y csv), luego abrimos el archivo .CSV y omitimos la primera línea (el encabezado). Luego nos conectamos a la BD (que se creará en la carpeta donde ejecutemos el script). Creamos la tabla (si no existe), llenamos los datos con un for y luego los recorremos e imprimimos con otro for. Por último hacemos el cierre del archivo y la conexión a la BD.
En los comentarios del código explico que es cada linea. Espero sea de ayuda.
Como siempre, cualquier duda o sugerencia la dejan al final de la entrada!!!
Fuente: http://adamantine.me/index.php/2017/05/22/how-to-write-data-to-a-sqlite-database-in-python/
-
Muy bueno gracias
Deja una respuesta
Excelente ejemplo, amplio mi conocimiento de python gestionando un csv con sqllite
Gracias!