Python Sqlite3: INSERT INTO table de VALEUR(dictionnaire)

Je voudrais utiliser un dictionnaire pour insérer des valeurs dans un tableau, comment pourrais-je faire cela?

import sqlite3

db = sqlite3.connect('local.db')
cur = db.cursor()

cur.execute('DROP TABLE IF EXISTS Media')

cur.execute('''CREATE TABLE IF NOT EXISTS Media(
                id INTEGER PRIMARY KEY, title TEXT, 
                type TEXT,  genre TEXT,
                onchapter INTEGER,  chapters INTEGER,
                status TEXT
                )''')


values = {'title':'jack', 'type':None, 'genre':'Action', 'onchapter':None,'chapters':6,'status':'Ongoing'}

#What would I Replace x with to allow a 
#dictionary to connect to the values? 
cur.execute('INSERT INTO Media VALUES (NULL, x)'), values)
cur.execute('SELECT * FROM Media')

meida = cur.fetchone()

print meida
La question ici est: Pourquoi voudriez-vous faire cela? Ce que vous voulez accomplir, et pourquoi pensez-vous de garder deux choses complètement différemment spécifié choses (une table SQL et un dict jeu de clés) dans la synchronisation est la bonne façon de le faire?
Ne sais pas ce que l'auteur a voulu, mais j'ai trouvé la question parce que je suis de la génération de la create table à partir de la structure d'un fichier XML, puis quand je vais à insert les lignes, j' le attrs et vals-les-bains dans un dict et je sais que la db va les avoir, mais ils ne sont jamais statiques.
Je sais que c'est un peu tard, mais... Si vous êtes juste de préchargement d'une base de données XML à utiliser plus statiquement plus tard, je serais probablement construire un script de charge au lieu d'un tas de plaquettes; si vous êtes accédant à la base de données avec des colonnes dynamiques tout le temps, vous devriez sérieusement envisager un autre type de magasin que d'une base de données relationnelle SQL. Ce que vous faites ce qui serait le mieux dans votre cas, mais n'est-ce pas, de sorte que SQL rend difficile.

OriginalL'auteur Crispy | 2013-01-01

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *