Команда .import
в оболочке sqlite является встроенной командой. Он обрабатывается программой оболочки, а не механизмом SQL, поэтому вы не можете выполнить его как инструкцию SQL.
Чтение кода для SQLite shell.c , кажется, что .import
- это просто цикл, чтение строк из файла данных, разбиение на разделитель и передача полей в качестве значений параметров в подготовленный INSERT
заявление. Таким образом, вы сможете легко имитировать поведение .import
с кодом Python.
Я протестировал следующее с Python 2.6:
import sqlite3
import csv
conn = sqlite3.connect(':memory:')
conn.execute('create table mytable (col1 text, col2 text, col3 text)')
csvReader = csv.reader(open('mydata.csv'), delimiter=',', quotechar='"')
for row in csvReader:
conn.execute('insert into mytable (col1, col2, col3) values (?, ?, ?)', row)
cur = conn.cursor()
cur.execute('select * from mytable')
print cur.fetchall()