Comment éviter la duplication des données lors de la saisie de Python vers SQLite.
!/usr/bin/env python
-*- coding: utf-8 -*-
import sys
import codecs
import sqlite3
import types
conn = sqlite3.connect("test.db" , isolation_level=None)
cur = conn.cursor()
#Initialize table
conn.execute("create table list(id integer primary key,name text)")
new_list = ['a', 'b', 'c', 'a'] # <= Le dernier'a 'est dupliqué.
for i in new_list:
sql = "select name from list where name LIKE '"+str(i)+"';"
result = conn.execute(sql).fetchone()
# types.NoneType est renvoyé. => Les données d'entrée n'ont pas le même contenu
if type(conn.execute(sql).fetchone()) == types.NoneType:
sql = "insert into list(name) values('"+str(i)+"');"
conn.execute(sql)
sql = "select * from list;"
print conn.execute(sql).fetchall()
>>>[(1, 'a'), (2, 'b'), (3, 'c')]