每次我运行此代码时,我都会得到"列名称1不是唯一的"。为什么呢?
graph = fb.graph.api(token)
f = graph.get_object(cat = 'single', id = '765898450131958', fields= ['likes'])
strona = f['id']
liczbalajkow = f['likes']
print liczbalajkow
conn = sqlite3.connect('fb_likes2.sqlite')
cur = conn.cursor()
cur.execute('''
CREATE TABLE IF NOT EXISTS Likes (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE, name1 TEXT UNIQUE PRIMARY KEY, likes_count INTEGER, date DATES)''');
cur.execute('''INSERT INTO Likes (name1, likes_count, date)
VALUES ( ?, ?, ? )''', ( strona, liczbalajkow, date.today(), ) );
conn.commit()
答案 0 :(得分:1)
可能只是因为它是真的并且你试图违反name1上的UNIQUE CONSTRAINT。您的CREATE TABLE语句将字段name1定义为唯一:name1 TEXT UNIQUE PRIMARY KEY
。
答案 1 :(得分:0)
原因是,您正在尝试为列' name1'插入表格重复条目。 很可能你在一些循环中调用此命令,从FB接收的数据包含多个搜索结果的相同页面名称。 也可能是您没有删除旧数据库(来自上一次运行)。
您可以尝试显示或保存到您尝试插入表格的日志文件值。
正确的解决方案是创建表外循环。 应该是这样的: