Я "конвертирую" большой (~ 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))
Все работает так, как я ожидаю, за исключением... IT ПРИНИМАЕТ НЕВЕРОЯТНОЕ ВРЕМЯ ПРОЦЕССА. Я неправильно его кодирую? Есть ли лучший способ достичь более высокой производительности и выполнить то, что мне нужно (просто преобразовать несколько полей CSV в таблицу SQLite)?
** EDIT - я попытался напрямую импортировать csv в sqlite, как было предложено, но оказалось, что у моего файла есть запятые в полях (например, "My title, comma"
). Это создает ошибки при импорте. Похоже, что слишком много из тех случаев, чтобы вручную редактировать файл...
любые другие мысли?? **