如何读取 pandas 上的下载 sql 查询

Nab*_*zir 1 python sql database dataset pandas

我应该探索下载的数据集,我没有 sql 凭据,我正在使用 jupyter lab,并且 sql 文件与 jupyter 笔记本位于同一文件夹中。

import pandas as pd
pd.read_sql_table('DATA_SPPT.sql')
Run Code Online (Sandbox Code Playgroud)

错误信息

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-3-4a4c42554a20> in <module>()
----> 1 pd.read_sql_table('DATA_SPPT_OP_BERSAMA.sql')

TypeError: read_sql_table() missing 1 required positional argument: 'con'
Run Code Online (Sandbox Code Playgroud)

这是sql格式的下载,所以我想我不需要描述连接,那么我该怎么办?

Ber*_*rdL 5

我认为您误解了read_sql的方法pandas。尽管它提供了与 SQLAlchemy 支持的 SQL 类型服务器连接的方法,但pandas没有特定的读取文件的方法。.sql

如果你想返回.sql文件的内容,你可以使用Python的上下文管理器来读取文件,它返回每行的列表并使用列表理解过滤掉空行:

with open('DATA_SPPT.sql','r') as f:
    lines = [line.strip() for line in f if line.strip()]
Run Code Online (Sandbox Code Playgroud)

如果出于某种原因你确实需要从中返回一个数据帧:

df = pd.DataFrame(lines)
Run Code Online (Sandbox Code Playgroud)

如果您想.sql直接从 传递文件pandas但需要con向数据库声明您的字符串:

with open('DATA_SPPT.sql','r') as f:
    df = pd.read_sql_query(f, con)
Run Code Online (Sandbox Code Playgroud)