0
点赞
收藏
分享

微信扫一扫

验证 warnings.filterwarnings只一次即可

hoohack 2023-09-12 阅读 22

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()

举报

相关推荐

0 条评论