[英]Creating pandas list of data frames from MySQL tables in python
我有 MySQL 服务器,我们可以称之为 MySever,该服务器上有一百个数据库,我们可以称之为数据库:database1、database2、database3…database100。 每个数据库都有一个名为 tablepull 的表。 我想要做的是获取每个数据库中的每个名为“tablepull”的表,并将该表存储到 python 列表中,表“tablepull”对于每个数据库都有完全相同的标题,并且可以在 Z3A425AZC55057DZ 中保存为 dataframe。
以下是定义的变量:
from sqlalchemy import create_engine
import pandas as pd
UserName = MyUserName
Password = MyPassword
Server = MyServer
Databases = [‘database1’, ‘database2’, ‘database3’,… ‘database100’]
Table = tablepull
我可以使用以下语法轻松拉出一个数据库表:
engine = create_engine(mssql:// UserName: Password@Server/Table?driver=SQL Server Native Client 11.0')
connection = engine.connect()
cnxn = connection.connection
#Read in data into from sql table#
raw_data = pd.read_sql(sql = """SELECT * FROM Table""", con = cnxn)
目标是能够遍历所有数据库并为每个数据库获取所需的表(tablepull)并保存到列表中。 任何帮助或指导将不胜感激。
谢谢你
您可以连接到多个数据库,前提是它们在同一台服务器上,无需在connect
命令中指定数据库名称。
现在,您可以拥有一个包含所有数据库名称的列表:
db_list = ['db1', 'db2', ... 'db100']
df_dict = {}
for c, db in enumerate(db_list):
sql = """SELECT * FROM {}.Table"""
df_dict[c] = pd.read_sql_query(sql.format(db), engine)
最后你会得到一个包含所有数据框的dictionary
。
这应该会有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.