Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 26, 2008 07:27:28

Cover Story
От:
Зарегистрирован: 2008-08-26
Сообщения: 192
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlite & csv

Всем доброго!!!
Есть код, который по замыслу автора, должен передавать данные из csv файла в таблицу sqlite3.

import sqlite3
import csv

f = open(r"C:\pythonprog\ats\ocapture1.csv")
csv.field_size_limit(100000) #see below!
input = csv.reader(f, delimiter=';')
conn = sqlite3.connect(r"C:\pythonprog\ats\sqlite\ats2.s3db")
curse = conn.cursor()

for item in input:
curse.execute("INSERT INTO ats VALUES (?, ?, ?, ?, ?, ?, ?, ?)", item)
curse.commit()
conn.close
При выполнении скрипта ошибки не выводятся. Но и в базу ничего не сохраняется. Правда создается файл ats2.s3db-journal который потом долго не пускает в базу пока не удалиться.
Помогите разобраться в данной ситуации.



Python 2.7.3
Pyside 1.1.2

Офлайн

#2 Ноя. 26, 2008 07:41:15

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlite & csv

может скобочки не поставил у conn.close(), т.е. по сути не закрыл коннект?



Отредактировано (Ноя. 26, 2008 07:42:24)

Офлайн

#3 Ноя. 26, 2008 08:00:54

Cover Story
От:
Зарегистрирован: 2008-08-26
Сообщения: 192
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlite & csv

Спасибо, это мой недосмотр! Теперь все работает гораздо быстрей. Но данные как не добавлялись так и не добавляются :(



Python 2.7.3
Pyside 1.1.2

Офлайн

#4 Ноя. 26, 2008 08:10:47

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlite & csv

хм. скорее всего цикл у тебя не разу не выполняется.
Сделай в цикле print item, чтоб проверить что это так.



Офлайн

#5 Ноя. 26, 2008 08:17:55

Cover Story
От:
Зарегистрирован: 2008-08-26
Сообщения: 192
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlite & csv

Спасибо, shiza. Ошибку нашел. curse.commit() надо исправить на conn.commit() и все будет нормально.
А цикл нормальный, раз десять запускал.



Python 2.7.3
Pyside 1.1.2

Офлайн

#6 Ноя. 26, 2008 08:18:09

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

sqlite & csv

и кстати - как тебе удается сделать curse.commit()?
у курсора нет такого метода. такой есть только у conn

З.ы. Ты меня опередил =)



Отредактировано (Ноя. 26, 2008 08:18:50)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version