Sometimes, we want to import a CSV file into a sqlite3 database table using Python.
In this article, we’ll look at how to import a CSV file into a sqlite3 database table using Python.
How to import a CSV file into a sqlite3 database table using Python?
To import a CSV file into a sqlite3 database table using Python, we can use the csv
and sqlite3
modules.
For instance, we write:
import csv, sqlite3
con = sqlite3.connect(":memory:")
cur = con.cursor()
cur.execute("CREATE TABLE t (col1, col2);")
with open('data.csv','r') as fin:
dr = csv.DictReader(fin)
to_db = [(i['col1'], i['col2']) for i in dr]
cur.executemany("INSERT INTO t (col1, col2) VALUES (?, ?);", to_db)
con.commit()
con.close()
to read data from data.csv, which has:
col1,col2
1,2
3,4
5,6
We connect to the SQLite database with sqlite3.connect
.
Then we call con.cursor
to get a cursor.
Next we use the cursor to create a table by calling cur.execute
.
Then we open the CSV with open
.
We read the file by using the csv.DictReader
constructor with the file fin
.
And then we get the items that we want to write to the DB into a list of tuples with to_db = [(i['col1'], i['col2']) for i in dr]
.
Next we call cur.executemany
with the insert SQL statement and to_db
to insert the entries.
Finally, we call commit
to commit the insertion and close
to close the db connection.
Conclusion
To import a CSV file into a sqlite3 database table using Python, we can use the csv
and sqlite3
modules.