我试图比较存储在sqlite数据库中的liks的链接列表。
假设数据库中的链接是:
link.com \页1/1
link.com \第2页
link.com \ PAGE3
如果数据库中存在给定的链接,并且如果它不存在则添加它,我已经将以下代码写入了小鸡。
links = ['link.com\page2', 'link.com\page4']
c.execute('SELECT link FROM ads')
previouslinks = c.fetchall()
for l in links:
if l not in previouslinks:
c.execute('''INSERT INTO ads(link) VALUES(?)''', (l))
conn.commit()
else:
pass
问题是即使链接在数据库中,脚本也无法识别它!
当我尝试打印previouslinks
变量时,结果看起来像这样:
[('link.com\page1',), ('link.com\page2',), ('link.com\page3',)]
我认为问题在于额外的括号和逗号,但我并不确定。
答案 0 :(得分:0)
fetchall()
返回一个行列表,其中每一行都是一个包含所有列值的元组。包含字符串的元组与字符串不同。
您必须从行中提取值(迭代游标时不需要fetchall()
):
previouslinks = [row[0] for row in c]