You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修复程序中SQLite3表时遭遇EOL字符串字面量语法错误求助

修复SQLite3 CREATE TABLE语句的SyntaxError问题

错误原因分析

  • 字符串未闭合:你的代码里SQL字符串用双引号开头,但在Integer/处中断,Python无法识别完整的字符串,因此抛出SyntaxError: EOL while scanning string literal。末尾的斜杠/完全多余,且没有闭合双引号。
  • SQL语法错误:CREATE TABLE的正确格式需要用括号包裹列定义,你直接写Integer不符合SQL语法,就算字符串闭合了,执行时也会触发SQL错误。

修复后的代码示例

假设你要创建带主键ID的表,正确写法如下:

# 闭合字符串并遵循SQL语法的CREATE TABLE语句
conn.execute("CREATE TABLE IF NOT EXISTS Cage_info (id INTEGER PRIMARY KEY)")

如果需要定义多列,推荐用三重引号写跨多行的SQL,可读性更强:

conn.execute("""CREATE TABLE IF NOT EXISTS Cage_info (
    id INTEGER PRIMARY KEY,
    cage_number TEXT,
    capacity INTEGER
)""")

额外提醒

  • 所有字符串字面量必须有对应的起始和结束引号(单引号或双引号均可)。
  • 编写SQL语句时严格遵循SQLite规范,表的列定义必须放在括号内。
  • 复杂场景下可以用ORM工具(比如SQLAlchemy)简化操作,减少语法错误,但简单建表直接写正确SQL即可。

内容的提问来源于stack exchange,提问作者Kristin Lindes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 20:02:06