один из моих студентов уровня A пытается заставить свой код работать в Python 3, но он продолжает появляться с сообщением об ошибке: «sqlite3.ProgrammingError: неверное количество предоставленных привязок. В текущем операторе используется 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 — Задача 4 с https://pythonschool.net/databases/inserting-data/
Любая помощь будет оценена. Спасибо.