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

Python使用pandas.read_sql查询PostgreSQL时突发语法错误

问题排查与解决方法

这个报错的核心诱因绝大多数是Jupyter当前加载的Python内核版本低于3.6:f-string格式化语法是Python3.6版本才正式支持的,你代码没改动但突然报错,基本是之前的内核异常退出后,Notebook自动切换到了低版本Python环境,解析器识别不了字符串前的f前缀,就会在字符串闭合的末尾引号位置抛出语法错误,和你描述的报错位置完全吻合。

按以下顺序排查即可:

  • 先确认当前运行的Python版本:新建单元格执行以下代码
import sys
print(sys.version)

如果输出的版本号低于3.6.0,即可确认是内核选错导致的问题。

  • 切换回正确的运行内核:点击顶部菜单栏Kernel→Change Kernel,选择你之前安装了pandas、psycopg2、pyyaml依赖、Python版本≥3.6的对应环境,切换完成后从头重新运行所有单元格即可恢复正常。
  • 临时兼容方案:如果暂时无法切换高版本内核,可以直接删掉字符串前多余的f前缀——你这段SQL语句里没有嵌入任何动态变量,f前缀本身就是不必要的,修改后代码在所有Python版本下都能正常运行:
pd.read_sql("""select * from myschema.mytable limit 100""", conn)

补充排查项:如果确认Python版本≥3.6仍然报这个错,往上检查这行之前运行过的所有代码,看有没有未闭合的括号、三引号。语法解析器的报错定位经常存在偏移,前面的代码存在未闭合的语法结构时,往往会在后面几行的位置才抛出错误,可以通过Kernel→Restart & Run All全量运行,定位第一个抛出错误的单元格,就能找到真正的语法问题点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 16:45:43