-
StackOverflow 文件
-
pandas 教程
-
將 SQL Server 讀取到 Dataframe
-
使用帶有連線迴圈的 pyodbc
import os, time
import pyodbc
import pandas.io.sql as pdsql
def todf(dsn='yourdsn', uid=None, pwd=None, query=None, params=None):
''' if `query` is not an actual query but rather a path to a text file
containing a query, read it in instead '''
if query.endswith('.sql') and os.path.exists(query):
with open(query,'r') as fin:
query = fin.read()
connstr = "DSN={};UID={};PWD={}".format(dsn,uid,pwd)
connected = False
while not connected:
try:
with pyodbc.connect(connstr,autocommit=True) as con:
cur = con.cursor()
if params is not None: df = pdsql.read_sql(query, con,
params=params)
else: df = pdsql.read_sql(query, con)
cur.close()
break
except pyodbc.OperationalError:
time.sleep(60) # one minute could be changed
return df