在Pandas DataFram中读取MDF文件

2024-06-16 12:22:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将一个microsoftsqlservermdf文件读入Python pandas数据帧。 我对这个问题非常迷茫,如果能朝着正确的方向努力,我会非常感激的。 请告诉我任何能使回答这个问题更容易的信息。在

以下是我找到的一些资源,但无法将其结合到成品中: https://pandas.pydata.org/pandas-docs/stable/io.html#engine-connection-exampleshttp://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_sql.htmlPython open Microsoft SQL Server MDF file


Tags: 文件数据httpsorg信息docspandashtml
1条回答
网友
1楼 · 发布于 2024-06-16 12:22:10

我不得不1.)通过sqlserverstudio将.mdf文件附加到我的本地sqlserver实例,然后2.)在我的计算机上打开一个端口以允许对sql server的读/写访问。如果我们可以使.mdf在SQLServer上可用,那么我们可以通过pandas/sqlAlchemy使用pd.read_sql()和sql server连接字符串连接到它。在

  1. 转到.mdf文件的文件夹,并与计算机上的每个人共享该文件。在Windows10上,我通过右键单击文件,突出显示Give access to,然后选择{}。然后我从下拉列表中添加了everyone,给它们读/写权限。这一步很重要,因为我无法将文件附加到sqlserver。现在,打开sqlservermanagementstudio,连接到您的sqlserver实例,然后右键单击Databases。这里有一个选项Attach...,您可以按照菜单选择.mdf文件。您的.mdf现在已连接到sql server。

  2. 既然您的.mdf位于sql server中,我们仍然存在无法访问它的问题。可以通过在计算机上打开一个端口以允许访问sql server来解决此问题。我遵循这个指南来做到这一点:https://docs.microsoft.com/en-us/sql/relational-databases/lesson-2-connecting-from-another-computer?view=sql-server-2017。完成本操作指南后,您的sql server应该可以访问。现在可能有更简单的方法来访问本地计算机上的sqlserver,但是这种方法的好处是,如果您想从远程计算机上读取sqlserver,它也可以工作。你所要做的就是在我们的连接字符串(下面)中更改ip地址。

现在,我们有了一个可访问的sqlserver实例和作为其中一个数据库的.mdf文件,我们可以像从pandas中读取任何其他数据库一样读取该文件。我使用下面的设置来读取我的.mdf文件。在

# MS SQL Server Config
server = '127.0.0.1'  # mssql is set up on localhost
port = '1433'  # the port I opened to access mssql
database = 'database_name'
username = 'username'
password = 'password'
driver = 'SQL+SERVER'
schema = 'dbo'

# create a sqlAlchemy engine with the above credentials
connection_str = f'mssql+pyodbc://{server}:{port}/{database}?driver={driver}'
engine = create_engine(connection_str)

# read our mdf file!
query = 'select * from table_name;'
df = pd.read_sql(query, engine)

现在我的sql server密码不受保护,因为我只是在本地运行,但如果您有自己的密码,您需要按如下方式调整连接字符串:

^{pr2}$

这样,现在应该将table_name文件中的.mdf读入pandas数据帧。在

相关问题 更多 >