2010-02-17 3 views
0

python.but에서 오류를 직면하는 Sqlite 데이터베이스 테이블에 구문 분석 된 피드 내용을 저장하려고합니다.이 문제에서 누군가를 도울 수 있습니까? 사실 매우 사소한 질문입니다! 초보자입니다! .. 어쨌든 미리 감사드립니다! Python에서 SQLite3을 사용합니다.

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 파이썬에서 오는이 줄을해야합니다. 따라서 큰 따옴표로 묶으면 값이 아닌 리터럴 문자열이됩니다. 그 결과는 아래와 같습니다 :

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

손으로 문자열을 포맷하지 마십시오 : http://wiki.python.org/moin/DbApiFaq –

관련 문제