나는 python을 사용하여 news.ycombinator RSS 피드를 읽고 sqlite3을 사용하여 데이터베이스에 저장합니다. 예를 들어, 데이터베이스에 공급되고있는 샘플 항목 (아이디, 제목, UR) ID가 자신의 의견 스레드의 URL의 웹 사이트에서 사용되는 주석 ID입니다데이터베이스 파이썬 sqlite3에서 중복 된 항목 반복
('3814508', 'Github is making me feel stupid(er)', 'http://www.serpentine.com/blog/2012/04/08/github-is-making-me-feel-stupider/')
입니다. 위 목록은 ids
, title
및 url
을 개별적으로 압축 한 다음 압축하여 작성한 것입니다. 이제 데이터베이스에 해당 항목을 복사하려고합니다.
import sqlite3 as lite
con = lite.connect('/path/to/rss.db')
con.text_factory = str
cur=con.cursor()
# --- Extract ids, links, urls ----
zipped = zip(ids, titles, targets)
cur.execute("SELECT Id FROM Posts")
existing_ids = cur.fetchall()
for i in range(0,len(zipped)):
if ids[i] not in existing_ids:
cur.executemany("INSERT INTO Posts VALUES(?, ?, ?)", zipped)
문제는 한 번에 30 개의 피드가 있다는 것입니다. 목록을 인쇄하면 정상적으로 작동하며 30 회의 결과가 표시됩니다. 나는 데이터베이스에 쓰기를 시도 할 때 많은 수의 항목은, 같은 서른 개 항목 이상 반복 테이블 "게시물"
sqlite> SELECT Count(*) FROM Posts;
930
DB를 스키마를 가지고 31 배 이상되어있다 CREATE TABLE Posts(Id TEXT, Title TEXT, Target TEXT);