Python CSV para SQLite
Estou "convertendo" um arquivo CSV grande (~ 1.6GB) e inserindo campos específicos do CSV em um banco de dados SQLite. Essencialmente, meu código se parece com:
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))
Tudo funciona como eu esperava, com exceção ... É preciso uma quantidade incrível de tempo para processar. Estou codificando incorretamente? Existe uma maneira melhor de obter um desempenho mais alto e realizar o que estou precisando (basta converter alguns campos de um CSV em tabela SQLite)?
** EDIT - Tentei importar diretamente o csv para o sqlite, conforme sugerido, mas o meu arquivo tem vírgulas nos campos (por exemplo,"My title, comma"
). Isso está criando erros com a importação. Parece que existem muitas dessas ocorrências para editar manualmente o arquivo ...
qualquer outra opinião ?? **