0

I have a csv file and am trying to create a sqlite database with that data.

The csv is basically like this:

genre,singer,singer_email,enrol_datetime,Last booking made on
Blues | Craig Phillip,craig@gmailcom,2018-05-20,2021-03-03

I tried following this and here's what I came up with. What am I doing wrong?

import csv, sqlite3

con = sqlite3.connect("sqlite:///data.db") 
cur = con.cursor()
cur.execute("CREATE TABLE t (genre, singer, singer_email, enrol_datetime, last_booking);") 

with open('data.csv','r') as fin: 
    dr = csv.DictReader(fin)
    to_db = [(i['genre'], i['singer'], i['singer_email'],i['enrol_datetime'],i['last_booking']) for i in dr]

cur.executemany("INSERT INTO t (genre, singer, singer_email,  enrol_datetime, last_booking) VALUES (?, ?, ?, ?, ?);", to_db)
con.commit()
con.close()

This is the error

Traceback (most recent call last):
  File "create_sqlite_database.py", line 3, in <module>
    con = sqlite3.connect("sqlite:///data.db")
sqlite3.OperationalError: unable to open database file
uber
  • 4,163
  • 5
  • 26
  • 55

1 Answers1

1

As per sqlite3 API reference, just put database name and error will go away.

con = sqlite3.connect("data.db")

simpleApp
  • 2,885
  • 2
  • 10
  • 19