2017-08-30 4 views
0

J'ai deux ou plusieurs listes, par exemple:liste Python dans la colonne SQL

name = ['Chris', 'John', 'Louis'] 
    surname = ['Brown', 'Green', 'Red'] 
    car = ['Audi', 'Mercedes', 'Ferrari'] 

Ce que je voudrais réaliser est la création d'une base de données SQL où chaque liste est une colonne pour que ce serait quelque chose comme : "Chris" dans la première ligne, "Brown" dans la deuxième ligne et "Audi" dans le troisième - et ainsi de suite. Mon script python réel est le suivant, mais je ne peux pas comprendre comment je peux enregistrer la liste:

connection = sqlite3.connect("name.db")      
    cursor = connection.cursor()         
    cursor.execute("DROP TABLE IF EXISTS peopleList")   
    cursor.execute("CREATE TABLE peopleList(Name TEXT, Surname TEXT, Car TEXT)") 

Répondre

5

Vous pouvez utiliser zip() et executemany() comme ceci:

cursor.executemany("""INSERT INTO peopleList (Name, Surname, Car) VALUES (?,?,?)""", 
        zip(name,surname,car)) 
+0

Je suis une erreur de retraçage: sqlite3.OperationalError: près de "%": erreur de syntaxe – antonioag

+0

@antonioag: oh je vois maintenant que vous utilisez SQLite3. La question était intitulée et taguée avec MySQL, ce qui m'a rendu confus. S'il vous plaît voir la réponse éditée qui devrait fonctionner. – bernie

+0

Désolé pour le mauvais tag et merci de votre temps. Quoi qu'il en soit, plus d'erreurs mais le fichier créé a 0 lignes – antonioag