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: