【问题标题】:Importing a .sql file in python在 python 中导入 .sql 文件
【发布时间】:2020-01-31 02:58:56
【问题描述】:

我刚开始学习 SQL,在 python 中导入我的 sql 文件时遇到了一些困难。

.sql 文件在我的桌面上,我的 .py 文件也是。

这就是我到目前为止所尝试的:

import codecs
from codecs import open
import pandas as pd
sqlfile = "countries.sql"
sql = open(sqlfile, mode='r', encoding='utf-8-sig').read()
pd.read_sql_query("SELECT name FROM countries")

但我收到以下消息错误:

TypeError: read_sql_query() missing 1 required positional argument: 'con'

我认为我必须建立某种联系,但我找不到这样做的方法。将我的数据转换为普通的 pandas DataFrame 对我有很大帮助。

谢谢

【问题讨论】:

标签: python sql pandas dataframe


【解决方案1】:

这是取自https://www.dataquest.io/blog/python-pandas-databases/ 的代码 sn-p 应该会有所帮助。

import pandas as pd
import sqlite3
conn = sqlite3.connect("flights.db")
df = pd.read_sql_query("select * from airlines limit 5;", conn)

不要将数据库作为普通文件读取。它具有特定的二进制格式,应使用特殊的客户端。

使用它,您可以创建能够处理 SQL 查询的连接。并且可以传递给read_sql_query

经常参考文档https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_sql_query.html

【讨论】:

    【解决方案2】:

    您需要一个数据库连接。我不知道您使用的是什么 SQL 风格,但假设您想在 SQL 服务器中运行查询

    import pyodbc
    con = pyodbc.connect(driver='{SQL Server}', server='yourserverurl', database='yourdb', trusted_connection=yes)
    

    然后将连接实例传递给 pandas

    pd.read_sql_query("SELECT name FROM countries", con)
    

    更多关于pyodbchere

    如果你想查询 SQLite 数据库

    import sqlite3
    con = sqlite3.connect('pathto/example.db')
    

    更多关于 sqlite here

    【讨论】:

      猜你喜欢
      • 2010-11-22
      • 2013-03-18
      • 1970-01-01
      • 2015-07-29
      • 2023-04-08
      • 2017-08-05
      • 1970-01-01
      • 2015-03-22
      • 1970-01-01
      相关资源
      最近更新 更多