如何使用python在sqlite3中插入动态数据
回溯最近一次呼叫上次:如何使用python在sqlite3中插入动态数据,python,sqlite,Python,Sqlite,回溯最近一次呼叫上次: enter code here import sqlite3 conn = sqlite3.connect('tutorial.db') c = conn.cursor() def create_table(): c.execute("CREATE TABLE example(Language VARCHAR, Version REAL, Skill TEXT)") def enter_data(): c.execute("INSERT INTO example
enter code here
import sqlite3
conn = sqlite3.connect('tutorial.db')
c = conn.cursor()
def create_table():
c.execute("CREATE TABLE example(Language VARCHAR, Version REAL, Skill
TEXT)")
def enter_data():
c.execute("INSERT INTO example VALUES('Python', 2.7, 'Beginner')")
c.execute("INSERT INTO example VALUES('Python', 3.3, 'Intermediate')")
c.execute("INSERT INTO example VALUES('Python', 3.4, 'Expert')")
conn.commit()
def enter_dynamic_data():
lang = input("What language? ")
version = float(input("What version? "))
skill = input("What skill level? ")
c.execute("INSERT INTO example (Language, Version, Skill) VALUES (?, ?, ?)",
(lang, version, skill))
conn.commit()
enter_dynamic_data()
conn.close()
如何消除此错误?此消息表示表示例不存在。您似乎没有调用“创建\u表”或“输入\u数据” 尝试使用:-
File "C:\Users\karti\Desktop\sqlite3\0304 - inserting dynamic data.py", line 25, in <module>
enter_dynamic_data()
File "C:\Users\karti\Desktop\sqlite3\0304 - inserting dynamic data.py", line 20, in enter_dynamic_data
c.execute("INSERT INTO example (Language, Version, Skill) VALUES (?, ?, ?)", (lang, version, skill))
sqlite3.OperationalError: no such table: example
请格式化您的回溯。此外,源代码的格式设置也已中断。在将数据插入表之前,请尝试运行create_table函数,错误是告诉您该表不存在。在首次调用create_table或使用该表所在的数据库时,无法复制该表。
import sqlite3
conn = sqlite3.connect('tutorial.db')
c = conn.cursor()
def create_table():
c.execute("CREATE TABLE IF NOT EXISTS example(Language VARCHAR, Version REAL, Skill TEXT)") #<<<<<<<<<< CHANGED
def enter_data():
c.execute("INSERT INTO example VALUES('Python', 2.7, 'Beginner')")
create_table() #<<<<<<<<<< ADDED
enter_data() #<<<<<<<<<< ADDED
c.execute("INSERT INTO example VALUES('Python', 3.3, 'Intermediate')")
c.execute("INSERT INTO example VALUES('Python', 3.4, 'Expert')")
conn.commit()
def enter_dynamic_data():
lang = input("What language? ")
version = float(input("What version? "))
skill = input("What skill level? ")
c.execute("INSERT INTO example (Language, Version, Skill) VALUES (?, ?, ?)",
(lang, version, skill))
conn.commit()
enter_dynamic_data()
cursor = c.connection.cursor() #<<<<<<<<<< ADDED
cursor.execute("SELECT * FROM example") #<<<<<<<<<< ADDED
for row in cursor: #<<<<<<<<<< ADDED
print("Language=", row[0], " Version=", row[1], " Skill=", row[2]) #<<<<<<<<<< ADDED
conn.close()
What language? Basic
What version? 3
What skill level? Easy
Language= Python Version= 2.7 Skill= Beginner
Language= Python Version= 3.3 Skill= Intermediate
Language= Python Version= 3.4 Skill= Expert
Language= Basic Version= 3.0 Skill= Easy
Process finished with exit code 0