Есть ли другой способ импортировать файлы данных (например, .csv) в модуль python sqlite3? [не вставлять по одному] - PullRequest
5 голосов
/ 18 мая 2010

В клиентском CLI sqlite3 для этого есть ".import file TABLE_name".

Но в настоящее время я не хочу устанавливать sqlite3 на мой сервер.

В модуле python sqlite3 мы можем создавать и редактировать БД.

Но я не нашел способа импортировать файл данных в ТАБЛИЦУ, кроме вставки строк одна за другой.

Есть другой способ?

1 Ответ

7 голосов
/ 18 мая 2010

Вы можете вставить один выстрел, используя команду executemany вместо того, чтобы вставлять один за другим

Допустим, у меня есть users.csv со следующим содержимым

"Hugo","Boss"
"Calvin","Klein"

и в основном открыть с помощью модуля csv и передать его функции .executemany

import csv,sqlite3

persons= csv.reader(open("users.csv"))
con = sqlite3.connect(":memory:")

con.execute("create table person(firstname, lastname)")
con.executemany("insert into person(firstname, lastname) values (?, ?)", persons)

for row in con.execute("select firstname, lastname from person"):
    print row

#(u'Hugo', u'Boss')
#(u'Calvin', u'Klein')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...