【问题标题】:How to open a SQL Server .mdf file with Python (pandas)如何使用 Python (pandas) 打开 SQL Server .mdf 文件
【发布时间】:2019-04-17 20:29:19
【问题描述】:

我正在尝试打开已保存到桌面的 mdf sql 数据库文件。你如何将它作为熊猫数据框打开?到目前为止,我只有以下内容:

conn=pyodbc.connect(driver='{SQL Server}', dsn=filepath)

它给了我错误信息

OperationalError: ('08001', '[08001] [Microsoft][ODBC SQL Server Driver]既没有提供 DSN 也没有提供 SERVER 关键字 (0) (SQLDriverConnect)')

我发现了另一个类似的问题,但也没有得到解答。我也一直无法找到一个好的教程来开始使用带有 python 的 sql 数据库我对这个话题很陌生。让我知道我是否可以提供任何额外的信息。提前致谢。

【问题讨论】:

  • 我无法在 python 3 上安装海报,还有其他选择吗?
  • 我之前也发现了一个,但我没有得到服务器部分。我的桌面上有一个 mdf 文件,无法在 python 中打开该文件。我是否必须以某种方式创建本地服务器才能读取 mdf 文件?

标签: python sql pandas pyodbc mdf


【解决方案1】:

我的桌面上有一个 mdf 文件,无法在 python 中打开该文件。

嗯,是的,您可以将其作为二进制文件打开,但是您需要编写代码来解释文件的内容。换句话说,您需要对 SQL Server 用于将数据库对象写入 .mdf 文件的逻辑进行逆向工程。

安装 SQL Server Express Edition,附加 .mdf 文件,然后像往常一样访问数据库可能会更容易。

或者,您可以使用如下代码,而不是手动将 .mdf 文件附加到 SQL Server 实例:

import pandas as pd
import pyodbc

cnxn_str = (
    r'DRIVER=ODBC Driver 11 for SQL Server;'
    r'SERVER=(local)\SQLEXPRESS;'
    r'Trusted_Connection=yes;'
    r'AttachDbFileName=C:\Users\Gord\Desktop\zzz.mdf;'
)
cnxn = pyodbc.connect(cnxn_str)
df = pd.read_sql("SELECT * FROM Table1", cnxn)

【讨论】:

  • 谢谢,我想我开始明白这是怎么回事了。
  • 使用此代码我现在收到此错误:InterfaceError: ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) ( SQLDriverConnect)')
  • 您可能安装了不同版本的 ODBC 驱动程序。查看pyodbc.drivers() 返回的列表,了解哪些驱动程序可用于您的 Python 应用程序。
  • 感谢您修复了驱动程序错误。为了运行此代码,我需要运行 sql express 的实例吗?
  • 是的,必须运行 SQL Server 实例才能让您的 Python 应用程序与之通信。它可以是作为服务运行的普通 SQL Server Express 实例,也可以是 LocalDB instance,在您开始使用它时“启动”并在您完成时关闭。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-27
相关资源
最近更新 更多