数据库python sqlite3中重复的重复条目

时间:2012-04-08 21:19:29

标签: python sqlite

我正在使用python阅读news.ycombinator RSS feed并使用sqlite3将它们存储在数据库中。例如,正在输入数据库的样本条目是(id,title,ur)

('3814508', 'Github is making me feel stupid(er)', 'http://www.serpentine.com/blog/2012/04/08/github-is-making-me-feel-stupider/')

其中id是网站在评论主题网址中使用的评论ID。上面的列表是通过单独提取idstitleurl然后压缩它们而制作的。现在我希望填充一个数据库,其中包含没有重复的条目,

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)

问题在于一次有三十个Feed。打印列表显示正常行为,有30个人。但是,当我尝试写入数据库时​​,有大量条目,相同的三十个项目在“帖子”表中重复超过31次

sqlite> SELECT Count(*) FROM Posts;
930

db具有架构CREATE TABLE Posts(Id TEXT, Title TEXT, Target TEXT);

1 个答案:

答案 0 :(得分:2)

一旦找到丢失的条目,您似乎正在插入所有条目的完整列表?也许你的意思是遍历压缩的每个元组,并检查每个元组是否已经存在?