这些方法在单个函数中工作得很好,但如果我尝试在类中实现它,它就会崩溃。
class SqlDownload():
def __init__(self):
driver="ODBC Driver 17 for SQL Server"
connection_url = f"database?driver={driver}"
self.engine = sa.create_engine(connection_url)
def get_uploaded(self):
engine = self.engine
query = "SELECT DISTINCT name FROM [db_Dev].[de].[ti]"
df = pd.read_sql(sql=query, con=engine)
uploaded_list = df["name"].to_list()
return uploaded_list
d = SqlDownload()
d.get_uploaded()
上面的方法不起作用,但是这个可以:
def get_uploaded():
driver="ODBC Driver 17 for SQL Server"
connection_url = f"database?driver={driver}"
engine = sa.create_engine(connection_url)
query = "SELECT DISTINCT name FROM [db_Dev].[de].[ti]"
df = pd.read_sql(sql=query, con=engine)
uploaded_list = df["name"].to_list()
return uploaded_list
get_uploaded()
为什么?我如何让它与班级一起工作?我有其他下载功能,在不同的表上使用相同的连接/引擎。
我收到此错误(仅适用于前者):
sqlalchemy.exc.ProgrammingError: (pyodbc.ProgrammingError) ('42S02', "[42S02] [Microsoft][SQL Server 的 ODBC 驱动程序 17][SQL Server]无效的对象名称 'db_Dev.de.ti'