Я "конвертирую" большой (~ 1,6 ГБ) файл CSV и вставляю определенные поля CSV в базу данных SQLite.По сути, мой код выглядит следующим образом:
import csv, sqlite3
conn = sqlite3.connect( "path/to/file.db" )
conn.text_factory = str #bugger 8-bit bytestrings
cur = conn.cur()
cur.execute('CREATE TABLE IF NOT EXISTS mytable (field2 VARCHAR, field4 VARCHAR)')
reader = csv.reader(open(filecsv.txt, "rb"))
for field1, field2, field3, field4, field5 in reader:
cur.execute('INSERT OR IGNORE INTO mytable (field2, field4) VALUES (?,?)', (field2, field4))
Все работает так, как я ожидаю, за исключением ... Это занимает невероятное количество времени для обработки.Я неправильно его кодирую?Есть ли лучший способ добиться более высокой производительности и выполнить то, что мне нужно (просто преобразовать несколько полей CSV в таблицу SQLite)?
** РЕДАКТИРОВАТЬ - я пытался напрямую импортировать CSV в SQLiteкак предложено, но оказывается, что мой файл имеет запятые в полях (например, "My title, comma"
).Это создает ошибки при импорте.Похоже, что этих событий слишком много, чтобы вручную редактировать файл ...
любые другие мысли ?? **