class Class_1:
global pd, pymssql, os
import pandas as pd
import pymssql
import os
str_addr_configuration = str_addr_configuration
import warnings
warnings.filterwarnings("ignore", message="^pandas only supports SQLAlchemy connectable.*")
def __init__(self, str_addr_configuration=str_addr_configuration):
self.str_addr_configuration = str_addr_configuration
# 解除后台占用
os.system("taskkill /f /im excel.exe")
# 创建字典_配置表
self.dict_configuration = {}
# 逐sheet读取DataFrame
for i in pd.ExcelFile(str_addr_configuration).sheet_names:
df_configuration_i = pd.read_excel(str_addr_configuration, sheet_name=i, index_col='name').astype(str) # 统一格式为字符串
# 逐行写入字典,同键名覆盖
for j in range(df_configuration_i.shape[0]):
str_index = df_configuration_i.index[j]
# 使用行位置进行定位,而非行标签进行筛选
self.dict_configuration[str_index] = df_configuration_i.iloc[j, 0]
class Class_2(Class_1):
def __init__(self):
super().__init__() # 调用父类的构造函数
for i in range(10):
self.df = pd.read_sql(
sql="SELECT * FROM SysObjects",
con=pymssql.connect(
server=self.dict_configuration['sql_server_2'],
database=self.dict_configuration['sql_database_2'],
user=self.dict_configuration['sql_user_2'],
password=self.dict_configuration['sql_password_2']
)
)
Instance = Class_2()