2010-02-17 3 views
0

Я пытаюсь сохранить некоторые анализируемые значения содержимого корма в таблице базы данных Sqlite в python. Но сталкивается с ошибкой. Может кто-нибудь помочь мне в этом вопросе. В противном случае это так тривиальный вопрос, чтобы спросить! Я новичок! .. Всем спасибо заранее!Использование SQLite3 в Python

from sqlite3 import * 
import feedparser 

data = feedparser.parse("some url") 

conn = connect('location.db') 
curs = conn.cursor() 

curs.execute('''create table location_tr 
    (id integer primary key, title text , 
     updated text)''') 


for i in range(len(data['entries'])): 
    curs.execute("insert into location_tr values\ 
      (NULL, data.entries[i].title,data.feed.updated)") 
conn.commit() 
curs.execute("select * from location_tr") 
for row in curs: 
    print row 

И Ошибка:

Traceback (most recent call last): 
    File "F:\JavaWorkspace\Test\src\sqlite_example.py", line 16, in <module> 
    (NULL, data.entries[i].title,data.feed.updated)") 
sqlite3.OperationalError: near "[i]": syntax error 

ответ

1

Попробуйте

curs.execute("insert into location_tr values\ 
     (NULL, '%s', '%s')" % (data.entries[i].title, data.feed.updated)) 
+2

Не форматировать строку от руки: http://wiki.python.org/moin/DbApiFaq –

+0

@jellybean: Спасибо за ваш ответ! ...: D –

+0

@bastien: Thx за подсказку –

0

ошибка должна быть эта линия

curs.execute("insert into location_tr values\ 
      (NULL, data.entries[i].title,data.feed.updated)") 

data.entries[i].title происходит от Python. Поэтому, если вы заключите его в двойные кавычки, он становится буквенной строкой, а не значением. Это должно быть что-то вроде этого:

curs.execute("insert into location_tr values (NULL," + data.entries[i].title +","+data.feed.updated+")") 
+2

Не форматировать строку вручную: http://wiki.python.org/moin/DbApiFaq –

Смежные вопросы