2010-04-22 4 views
8

Je sais que c'est simple mais je n'arrive pas à le faire fonctionner! Je n'ai pas de prob avec insérer, mettre à jour ou sélectionner des commandes, Disons que j'ai un dictionnaire et que je veux remplir une table avec les noms des colonnes dans le dictionnaire qu'est-ce qui ne va pas avec ma ligne?Comment ajouter des colonnes à sqlite3 python?

##create 
con = sqlite3.connect('linksauthor.db') 
c = con.cursor() 
c.execute('''create table linksauthor (links text)''') 
con.commit() 
c.close() 
##populate author columns 
allauthors={'joe':1,'bla':2,'mo':3} 
con = sqlite3.connect('linksauthor.db') 
c = con.cursor() 
for author in allauthors: 
    print author 
    print type(author) 
    c.execute("alter table linksauthor add column '%s' 'float'")%author ##what is wrong here? 
    con.commit() 
c.close() 

Répondre

14

Votre parent est mal placé. Vous avez probablement voulu dire ceci:

c.execute("alter table linksauthor add column '%s' 'float'" % author) 
+0

omg, merci lmao, je regarde le code trop longtemps apparemment – user291071

3

Vous utilisez également des chaînes pour le nom de la colonne et le nom du type. Sqlite est très tolérant, mais vous devriez vraiment utiliser des guillemets doubles comme caractère de citation pour les identifiants.