Я пытаюсь создать таблицу SQL из файла CSV, используя библиотеку Python sqlite3.Вот код, который я написал:
import csv
import sqlite3
csv_file = 'path/to/file.csv'
db = sqlite3.connect('clients.db')
db.execute('''CREATE TABLE main(
ID INT PRIMARY KEY NOT NULL,
name VARCHAR,
email VARCHAR,
address VARCHAR);''')
# That part is only for getting the number of rows in the table
with open(csv_file, 'r') as csv_table:
reader = csv.DictReader(csv_table, delimiter=';')
rows = sum(1 for r in reader)
# Here I'm reading the table
with open(csv_file, 'r') as csv_table:
reader = csv.DictReader(csv_table, delimiter=';')
for i, row in enumerate(reader):
db.execute('''INSERT INTO main VALUES
('{idn}', '{name}', '{email}', '{add}');'''.format(idn=i,
name=row['name'],
email=row['email'],
add=row['address']))
print('{}/{}:\t{}'.format(i+1, rows, row))
db.commit()
db.close()
После того, как я запустил этот код, я попытался получить доступ к таблице с помощью sqlite3, но я получил сообщение об ошибке: «Ошибка: нет такой таблицы: основная» в любое времяотправить запрос относительно таблицы 'main'.
Я пытался прочитать таблицу с помощью Python, и она отлично работает:
import sqlite3
db = sqlite3.connect('clients.db')
rows = db.execute('SELECT * FROM main;')
for r in rows:
print(r)
Я запускаю этот скрипт из того же каталога, в которомЯ использую SQLite3.
Я использую Python 3.6, и моя ОС - Ubuntu 16.04.6 LTS.