【问题标题】:How do I read a downloades sql query on pandas如何在熊猫上阅读下载的 sql 查询
【发布时间】:2019-05-04 09:19:10
【问题描述】:

我应该浏览一个下载的数据集,我没有 sql 凭据,我正在使用 jupyter lab,并且 sql 文件与 jupyter notebook 位于同一文件夹中。

import pandas as pd
pd.read_sql_table('DATA_SPPT.sql')

错误信息

---------------------------------------------------------------------------
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'

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

【问题讨论】:

  • 您的意思是这是一个sql 查询?如果是,您错误地使用了read_sql_table,您需要声明您正在查询表的连接。如果不尝试将您的文件作为文本文件读取。
  • 使用read_sql,read_sql_tableread_sql_query 给出同样的错误
  • 我的意思是你试图返回查询本身而不是数据集仪式?
  • 我不确定你的意思,文件是.sql格式

标签: python sql database pandas dataset


【解决方案1】:

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

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

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

如果出于某种原因您确实需要从中返回数据框:

df = pd.DataFrame(lines)

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

with open('DATA_SPPT.sql','r') as f:
    df = pd.read_sql_query(f, con)

【讨论】:

    猜你喜欢
    • 2019-01-23
    • 2022-08-17
    • 1970-01-01
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    • 2016-09-25
    • 2015-05-09
    • 2019-11-05
    相关资源
    最近更新 更多