【问题标题】:Load Pandas DataFrame to MS SQL localhost DB将 Pandas DataFrame 加载到 MS SQL localhost DB
【发布时间】:2017-07-16 13:16:29
【问题描述】:

我正在尝试借助 python 脚本将数据框“f3”加载到在 localhost 中运行的 MS SQL 服务器。这是我的代码;

导入 sqlalchemy

导入pyodbc

engine = sqlalchemy.create_engine("mssql+pyodbc://localhost/test_project")

f3.to_sql("test", 引擎)

但是,我收到一个错误,我无法弄清楚我做错了什么。有人可以帮我找出我在做什么错吗?

以下是我遇到的错误;

DBAPIError: (pyodbc.Error) ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect)')

将 DataFrame 写入 SQL 数据库中的表

【问题讨论】:

  • 您遗漏了关键信息:错误是什么?我们可能不需要整个 Python 回溯,但我们当然需要 SQL Server 错误的文本。 IIRC to_sql 通常会创建一个表。如果您无权这样做,那可能是一个问题。
  • 谢谢詹姆斯。我刚刚添加了该信息。你现在能帮帮我吗?它是一台本地机器。所以我放了localhost,没有用户名和密码。这可能是个问题吗?
  • 该错误表明您没有连接到数据库。您没有将正确的连接信息传递给 sqlalchemy,或者您的基本 ODBC 设置不起作用。确保像 select count(*) from systables 这样简单的东西在 pyodbc 中有效,然后在 sqlalchemy 中做同样的事情。之后,然后尝试使用 Pandas。

标签: python pandas-to-sql


【解决方案1】:

您在与 mssql 数据库的连接字符串中出现的问题。 你必须把它如下所示,

engine = sqlalchemy.create_engine('mssql+pyodbc://'+user+':'+password+'@'+host+':'+port+'/'+database+'?'\
          +'driver=SQL+Server+Native+Client+11.0')

请确保将正确的详细信息放入连接字符串中使用的变量中。您也可以根据您的需要使用不同的驱动程序,请更改驱动程序,在我的情况下,我输入了SQL+Server+Native+Client+11.0

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-22
    • 2013-10-06
    • 1970-01-01
    • 1970-01-01
    • 2020-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多