在python中读取sql表

crcmnpdw  于 2021-06-24  发布在  Mysql
关注(0)|答案(3)|浏览(688)

我有一个 .sql 我只想读入jupyter笔记本中PandasDataframe的文件。对于csv文件,我只需上传文件并使用以下内容创建Dataframe:

df = pd.read_csv('file.csv')

我想我的sql文件需要使用mysql这样的数据库应用程序来提供。也许有什么办法来主持会议 .sql 本地文件?我不需要做任何数据库操作-我只想读取表的值。

vnzz0bqm

vnzz0bqm1#

我猜您正在尝试仅从.sql文件导入pandas中的表,而不连接到或使用任何sql服务器。但是.sql文件只包含一些查询,或者即使将表导出到.sql文件中,也需要一个活动的数据库连接才能读入dataframe。您可以在io工具中查看所有用于读取或写入sql的函数,并注意到所有可用的函数都需要一个活动连接。

esbemjvw

esbemjvw2#

import pandas as pd
import pyodbc
from sqlalchemy import create_engine
engine = create_engine('mysql+pyodbc://<username>:<password>@<server>:<port>/<db_name>?driver=<driver_name>')
with open('Path/to/xxx.sql', 'r') as sql_file:
    query = sql_file.read()
df = pd.read_sql(query, con=cnxn)

<>中的所有信息都特定于您的设置

vd8tlhqk

vd8tlhqk3#

我想你应该用这个网页链接,它将直接采取sql转储和创建csv,然后上传
http://www.convertcsv.com/sql-to-csv.htm
或者你可以用
导入子流程

proc = subprocess.Popen(["mysql", "--user=%s" % USER, "--password=%s" % PASS, "database"],
                        stdin=subprocess.PIPE,
                        stdout=subprocess.PIPE)
out, err = proc.communicate(file("/tmp/dump.sql").read())

相关问题