Конвертация CSV таблицы в SQLite на python

Есть CSV таблица ≈ 1gb

Пример таблицы Её надо преобразовать в базу данных SQLite. Попробовал следующим образом:

import csv, sqlite3

con = sqlite3.connect('filename.db')
cur = con.cursor()
# cur.execute("""CREATE TABLE tablename(
#     phone INTEGER NOT NULL,
#     uid INTEGER NOT NULL,
#     mail TEXT,
#     first_name TEXT,
#     last_name TEXT,
#     gender TEXT,
#     date_registered TEXT,
#     birthday TEXT,
# );""")


with open('BD.csv','r', encoding="utf8") as f:
    dr = csv.DictReader(f, delimiter=",")
    to_db = [(i['phone'], i['uid'], i['email'], i['first_name'], i['last_name'], i['gender'], i['date_registered'], i['birthday']) for i in dr]

cur.executemany("INSERT INTO BD (phone, uid, email, first_name, last_name, gender, date_registered, birthday) VALUES (?, ?, ?);", to_db)
con.commit()
con.close()

Вывод:

Traceback (most recent call last): File "d:\Convert_CSV_SQL.py", line 27, in to_db = [(i['phone'], i['uid'], i['email'], i['first_name'], i['last_name'], i['gender'], i['date_registered'], i['birthday']) for i in dr] File "d:\Convert_CSV_SQL.py", line 27, in to_db = [(i['phone'], i['uid'], i['email'], i['first_name'], i['last_name'], i['gender'], i['date_registered'], i['birthday']) for i in dr] KeyError: 'uid'

Целый день сижу и не получается это сделать.


Ответы (1 шт):

Автор решения: Caxa

Прошу прощения проблема была в самом файле.

→ Ссылка