¿Cómo importar un archivo CSV a una tabla de base de datos SQLite usando Python?

En este artículo, vamos a discutir cómo importar el contenido de un archivo CSV en una tabla de base de datos SQLite usando Python.

Acercarse:

  • Al principio, importamos el módulo csv (para trabajar con el archivo csv) y el módulo sqlite3 (para llenar la tabla de la base de datos).
  • Luego nos conectamos a nuestra base de datos de geeks usando el método sqlite3.connect().
  • En este punto, creamos un objeto de cursor para manejar las consultas en la tabla de la base de datos.
  • Primero creamos nuestra tabla de personas y creamos un archivo csv con el contenido dentro del cual lo insertaremos en nuestra tabla.
  • Abrimos el archivo csv creado anteriormente usando la función open() .
  • Extraemos todo el contenido del archivo csv en nuestra variable de contenido a través del método csv.reader().
  • Luego insertamos nuestro contenido de filas del archivo csv en nuestra base de datos a través del método executemany() que reemplazará (?,?) Con los siguientes dos datos separados por comas del archivo csv y lo insertaremos como un registro en la tabla de personas .
  • Finalmente, verificamos que los datos del archivo csv se hayan insertado correctamente en nuestra tabla con la declaración SELECT y confirmamos los cambios y cerramos la conexión a la base de datos.

A continuación se muestra la implementación.

Para fines de implementación, crearemos una tabla de personas en nuestra base de datos geeks.db . Vamos a insertar el contenido de person_records.csv en nuestra tabla de personas . A continuación se muestra el archivo CSV que vamos a utilizar:

A continuación se muestra el programa completo basado en el enfoque anterior:

Python3

# Import required modules
import csv
import sqlite3
 
# Connecting to the geeks database
connection = sqlite3.connect('g4g.db')
 
# Creating a cursor object to execute
# SQL queries on a database table
cursor = connection.cursor()
 
# Table Definition
create_table = '''CREATE TABLE person(
                id INTEGER PRIMARY KEY AUTOINCREMENT,
                name TEXT NOT NULL,
                age INTEGER NOT NULL);
                '''
 
# Creating the table into our
# database
cursor.execute(create_table)
 
# Opening the person-records.csv file
file = open('person-records.csv')
 
# Reading the contents of the
# person-records.csv file
contents = csv.reader(file)
 
# SQL query to insert data into the
# person table
insert_records = "INSERT INTO person (name, age) VALUES(?, ?)"
 
# Importing the contents of the file
# into our person table
cursor.executemany(insert_records, contents)
 
# SQL query to retrieve all data from
# the person table To verify that the
# data of the csv file has been successfully
# inserted into the table
select_all = "SELECT * FROM person"
rows = cursor.execute(select_all).fetchall()
 
# Output to the console screen
for r in rows:
    print(r)
 
# Committing the changes
connection.commit()
 
# closing the database connection
connection.close()

Producción:

SQLite:

Publicación traducida automáticamente

Artículo escrito por yoji y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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