Использование SQLite3 в Python - PullRequest
0 голосов
/ 17 февраля 2010

Я пытаюсь сохранить некоторые проанализированные значения фида в таблице базы данных Sqlite в 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

Ответы [ 2 ]

1 голос
/ 17 февраля 2010

Попробуйте

curs.execute("insert into location_tr values\
        (NULL, '%s', '%s')" % (data.entries[i].title, data.feed.updated))
0 голосов
/ 17 февраля 2010

ошибка должна быть в этой строке

  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+")")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...