如何解决Python中sqlite3.OperationalError: incomplete input错误?
解决sqlite3.OperationalError: incomplete input错误
嗨,这个问题其实很好排查——你在第7行写的CREATE TABLE SQL语句语法不完整!
看你原代码里的这一行:
cursor.execute("CREATE TABLE veritabani(İsim TEXT, Yazar TEXT, Yayınevi TEXT, Sayfa INTEGER")
你仔细看,括号只打开了一个,结尾漏掉了闭合的)!SQLite解析这条语句时,发现语句没写完,自然就抛出了incomplete input错误。
修正后的代码
只需要给SQL语句补上结尾的括号就行:
import sqlite3 con = sqlite3.connect("database.db") cursor = con.cursor() def tablo_olustur(): # 补上了结尾的括号 cursor.execute("CREATE TABLE veritabani(İsim TEXT, Yazar TEXT, Yayınevi TEXT, Sayfa INTEGER)") con.commit() def veri_ekle(): cursor.execute("insert into veritabani Values('İstanbul Hatırası', 'Ahmet Ümit', 'Everest', 561)") con.commit() tablo_olustur() veri_ekle() con.close()
额外小建议
为了避免重复运行代码时出现“表已存在”的错误,你可以给CREATE TABLE加上IF NOT EXISTS,让语句更健壮:
cursor.execute("CREATE TABLE IF NOT EXISTS veritabani(İsim TEXT, Yazar TEXT, Yayınevi TEXT, Sayfa INTEGER)")
内容的提问来源于stack exchange,提问作者satck olerfowl user




