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:

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/

  1. Fidel López Salazar dice:

    Excelente ejemplo, amplio mi conocimiento de python gestionando un csv con sqllite

    Gracias!

  2. Anónimo dice:

    Muy bueno gracias

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir
White Monkey