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

使用Pandas读取SQL Server数据表无输出无报错,求排查方案

解决Jupyter读取SQL Server无输出问题

核心原因:驱动不匹配

PyMySQL是MySQL专属驱动,完全不兼容SQL Server——程序没报错是因为连接逻辑未触发致命异常,但实际并未建立有效数据库连接,自然读不到数据。

修复方案

1. 安装SQL Server适配驱动

推荐使用pyodbc(生态成熟、兼容性好),执行安装命令:

pip install pyodbc

也可选择pymssql作为替代:

pip install pymssql

2. 修正SQLAlchemy连接字符串

以pyodbc为例,替换成你的数据库信息:

from sqlalchemy import create_engine

server = "你的服务器地址(如localhost或IP)"
database = "目标数据库名"
username = "数据库账号"
password = "数据库密码"

# 标准SQL认证连接字符串
conn_str = f"mssql+pyodbc://{username}:{password}@{server}/{database}?driver=ODBC+Driver+17+for+SQL+Server"
engine = create_engine(conn_str)

# 若用Windows集成认证,改用此字符串
# conn_str = f"mssql+pyodbc://@{server}/{database}?driver=ODBC+Driver+17+for+SQL+Server&Trusted_Connection=yes"

3. 读取并强制输出数据

读取数据表后,确保在Jupyter中触发输出:

import pandas as pd

# 方式1:读取整张表
df = pd.read_sql_table("你的数据表名", engine)
# 方式2:执行自定义SQL查询
# df = pd.read_sql("SELECT * FROM 你的数据表名", engine)

# 强制打印输出
print(df)
# 或直接调用变量让Jupyter自动渲染
df

4. 额外排查点

  • 确认SQL Server允许远程连接,默认端口1433是否开放
  • 检查ODBC驱动版本(推荐ODBC Driver 17+)与系统架构(32/64位)匹配
  • 验证数据库账号对目标数据表有读取权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 16:55:05