【发布时间】:2022-07-14 03:11:06
【问题描述】:
我试图弄清以下错误,当我将我的 python 代码设置为在 VM 服务器上运行时,我在桌面上安装了 3.9.5 而不是 3.8.5。不确定这是否重要,但这可能是部分原因。
错误
C:\ProgramData\Miniconda3\lib\site-packages\pandas\io\sql.py:758: UserWarning: pandas only support SQLAlchemy connectable(engine/connection) or
database string URI or sqlite3 DBAPI2 connection
other DBAPI2 objects are not tested, please consider using SQLAlchemy
warnings.warn(
这是在一个相当简单的 .py 文件中导入 pyodbc 和 sqlalchemy fwiw。产生警告的相当通用/简单的 sql 调用版本是:
myserver_string = "xxxxxxxxx,nnnn"
db_string = "xxxxxx"
cnxn = "Driver={ODBC Driver 17 for SQL Server};Server=tcp:"+myserver_string+";Database="+db_string +";TrustServerCertificate=no;Connection Timeout=600;Authentication=ActiveDirectoryIntegrated;"
def readAnyTable(tablename, date):
conn = pyodbc.connect(cnxn)
query_result = pd.read_sql_query(
'''
SELECT *
FROM [{0}].[dbo].[{1}]
where Asof >= '{2}'
'''.format(db_string,tablename,date,), conn)
conn.close()
return query_result
我看到的所有在 python 中使用 pyodbc 的例子看起来都非常相似。 pyodbc 被弃用了吗?有没有更好的方法可以在没有警告的情况下实现类似的结果?
【问题讨论】:
标签: sql-server python-3.x pandas pyodbc