2010-02-17 6 views
0

Je suis en train de stocker des contenus alimentation dans le tableau des valeurs analysées de base de données SQLite python.But face error.Could quelqu'un me aider à sortir de ce issue.Infact il est question aussi triviale de demander! Je suis novice! ..En tout cas merci d'avance!En utilisant SQLite3 en 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 

Et l'erreur est:

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 

Répondre

1

Essayez

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

Ne pas formater la chaîne main: http://wiki.python.org/moin/DbApiFaq –

+0

@jellybean: Merci pour votre réponse ...: D –

+0

@bastien: Thx pour l'indice –

0

l'erreur doit être cette ligne

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

data.entries[i].title vient de Python. Donc, si vous l'insérez entre guillemets doubles, cela devient une chaîne littérale, pas une valeur. Il devrait être quelque chose comme ceci:

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

Ne pas formater la chaîne à la main: http://wiki.python.org/moin/DbApiFaq –