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

SQL新手在Anaconda中使用SQLite查询表触发SyntaxError报错求助

问题原因

你遇到的语法报错核心是IPython魔术命令的使用规则不符合要求:

  • %开头的是行魔术命令,%%开头的是单元格魔术命令,单元格魔术命令必须放在当前代码单元格的首行才会生效
  • 魔术命令属于IPython的扩展语法,不能和普通Python代码混在同一个单元格执行
解决方法

方法1:拆分单元格执行(保留ipython-sql查询方式)

将代码拆分到3个独立的Jupyter代码单元格,按顺序逐个执行:

  1. 第一个单元格运行数据写入代码:
import sqlite3
import pandas as pd
com = sqlite3.connect('Reporting.db')
# 此处省略你提前定义df的代码
df.to_sql('tblReporting', com, index=False, if_exists='replace')
print('tblReporting loaded \n')
  1. 第二个单元格单独加载扩展并连接数据库:
%load_ext sql
%sql sqlite:///Reporting.db
  1. 第三个单元格单独执行SQL查询,%%sql必须放在首行:
%%sql
SELECT *
FROM tblReporting

方法2:直接用Pandas读取SQL结果(无需加载扩展)

如果不需要用ipython-sql的交互查询功能,可以直接用pandas内置的read_sql方法查询,不需要拆分单元格,代码如下:

import sqlite3
import pandas as pd
com = sqlite3.connect('Reporting.db')
df.to_sql('tblReporting', com, index=False, if_exists='replace')
print('tblReporting loaded \n')

# 直接执行查询
query = "SELECT * FROM tblReporting"
result_df = pd.read_sql(query, com)
print(result_df)

内容的提问来源于stack exchange,提问作者Umair Maqsood

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:36:05