Python : Comment insérer un dictionnaire à une base de données sqlite?
J'ai une base de données sqlite avec une table avec les colonnes suivantes :
id(int) , name(text) , dob(text)
Je veux insérer dictionnaire suivant :
{"id":"100","name":"xyz","dob":"12/12/12"}
Dictionnaire clés sont les noms des colonnes. Comment puis-je l'atteindre ?
Qu'avez-vous essayé? Comment êtes-vous de la connexion à la base de données? Êtes-vous en utilisant n'importe quel type de l'ORM?
Pouvez-vous veuillez donner un peu de code que vous avez Essayé ??
vous ne pouvez pas insérer un dictionnaire facilement, mais vous pouvez insérer une liste. Jetez un oeil la doc
Une solution possible serait de modifier la Classe IterChars() dans le docs . Je n'étais pas en mesure de l'adapter. Un coup d'oeil à sqlalchemy pourrait aider ainsi
Pouvez-vous veuillez donner un peu de code que vous avez Essayé ??
vous ne pouvez pas insérer un dictionnaire facilement, mais vous pouvez insérer une liste. Jetez un oeil la doc
Une solution possible serait de modifier la Classe IterChars() dans le docs . Je n'étais pas en mesure de l'adapter. Un coup d'oeil à sqlalchemy pourrait aider ainsi
OriginalL'auteur avee137 | 2012-06-06
Vous devez vous connecter pour publier un commentaire.
Regardant la documentation ici vous pouvez ajouter une seule ligne:
Ou vous pouvez utiliser une liste et d'y ajouter plusieurs lignes en une seule fois:
OriginalL'auteur Gareth Webber
Voici une manière qui préserve paramètre de sécurité. (Peut-être besoin de polissage dans le tablename département)
OriginalL'auteur himself
Si, par exemple,
c = conn.cursor()
, et votre dictionnaire est nommédict
et votre tabletablename
, alors vous pouvez écrireQui va insérer les éléments du dictionnaire dans le tableau que vous avez besoin.
OriginalL'auteur Eliot Ball
Comme par Gareth réponse, si vous utilisez
MySQLdb
vous pouvez utiliserexecutemany
et passer d'une liste de valeurs que vous pouvez obtenir directement à partir de votredict
à l'aide dedict.values()
petite mise à jour: Dictionnaires maintenant maintenir l'ordre de 3,6, et ce comportement sera dans un langage de spécification de 3.7.
OriginalL'auteur Daniel Bang