gpt4 book ai didi

python - sqlite3.ProgrammingError : Incorrect number of bindings supplied. 当前语句使用 3,提供了 1

转载 作者:行者123 更新时间:2023-12-03 08:25:13 26 4
gpt4 key购买 nike

我的一个 A Level 学生试图让他们的代码在 Python 3 中工作,但它不断出现错误消息:“sqlite3.ProgrammingError:提供的绑定(bind)数量不正确。当前语句使用 3,并且提供了 1” .代码如下:

import sqlite3

def query(sql,data):
with sqlite3.connect("DogBreeds.db") as db:
cursor = db.cursor()
cursor.execute(sql,data)
db.commit()

def insert_dog_breed_data(records):
sql = "insert into DogBreed(Breed, Description, Previous_Litters) values (?,?,?)"
for record in records:
query(sql,record)

def insert_dog_data(records):
sql = "insert into Dogs (Name, Date of Birth, Gender, DogBreedID) values (?,?,?,?)"
for record in records:
query(sql,record)

if __name__ == "__main__":
dog_breeds = [("Shih Tzu",),("Jack Russell",),("Great Dane",),("Husky"("Cavalier King Charles Spaniel",),("Pug")]
insert_dog_breed_data(dog_breeds)
dogs = [("Steve", "10/08/2006", "Male",1),("John","08/05/2017", "Male",2),("Ellen", "25/12/2013","Female",3),("Betty", "13/01/2000", "Female",4),("Charlie", "30/03/2000", "Female",5),("Fred", "04/05/2000", "Male",5)]
insert_dog_data(dogs)

完整的错误信息是:

Traceback (most recent call last):   File "G:\Dog Breeder Scenario - Python\Insert data 2.py", line 21, in <module>
insert_dog_breed_data(dog_breeds) File "G:\Dog Breeder Scenario - Python\Insert data 2.py", line 12, in insert_dog_breed_data
query(sql,record) File "G:\Dog Breeder Scenario - Python\Insert data 2.py", line 6, in query
cursor.execute(sql,data)
sqlite3.ProgrammingError: Incorrect number of bindings supplied. The current statement uses 3, and there are 1 supplied.


作为指南,他们遵循 Python School 网站上的教程 - https://pythonschool.net/databases/inserting-data/ 中的任务 4

任何帮助将不胜感激。
谢谢。

最佳答案

您正在将单项元组列表传递给 insert_dog_breed_data - 仅包含品种名称 - 但 SQL 查询需要三个项目 - 名称、描述、previous_litters。

请注意,新程序员可以学习的最有用的技能之一是如何阅读错误消息。该消息中提供了他们 - 以及您 - 自己解决此问题所需的所有信息。

关于python - sqlite3.ProgrammingError : Incorrect number of bindings supplied. 当前语句使用 3,提供了 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44072309/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com