我正在尝试将字典中的值列表插入sqlite3
数据库。这是我的代码,当我运行代码时会出现此错误:
ProgrammingError:提供的绑定数量不正确。当前语句使用3,并且提供了2个。
import sqlite3
import re
import sys
import sqlite3
import pandas as pd
ListProduct={'nom_produit':[], 'prix':[], 'note':[]}
ListProduct['nom_produit'].append("Capuche Hip Hop Automne Hiver")
ListProduct['prix'].append('$3.9')
ListProduct['note'].append('4.5')
ListProduct['nom_produit'].append("Capuche Hip Hop Automne Hiver")
ListProduct['prix'].append('$12.9')
ListProduct['note'].append('4.8')
# Permet de se connecter à la base de données
conn = sqlite3.connect("mabase.db")
# Initialise le curseur
cur = conn.cursor()
# Créer la table si elle n'existe pas
cur.execute("CREATE TABLE IF NOT EXISTS Produit (nom_product VARCHAR,price real, rating real)")
for key,values in ListProduct.items():
cur.execute("""INSERT INTO Produit(nom_product, price,rating) VALUES(:nom_produit, :prix,:note)""", values)
# Accepter les changements
cur.execute('SELECT * FROM Produit')
meida = cur.fetchone()
print(meida)
conn.commit()
# Fermer la connexion
conn.close()
答案 0 :(得分:0)
您正在使用3个命名占位符:<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.20.1/moment.min.js"></script>
,:nom_produit
和:prix
,这使:note
期望sqlite3
成为包含{{1}的字典},values
和nom_produit
键。
但是,您的prix
值是列表。
将note
的定义更改为:
values
然后,您甚至可以完全避免循环并切换到ListProduct
:
ListProduct= [
{
'nom_produit': "Capuche Hip Hop Automne Hiver",
'prix': '$3.9',
'note': '4.5'
},
{
'nom_produit': "Capuche Hip Hop Automne Hiver",
'prix': '$12.9',
'note': '4.8'
}
]