从SQL Alchemy到Pandas-代码以前只能在2.7上运行,而不能在3.7上运行

时间:2019-05-03 20:40:46

标签: pandas sqlalchemy anaconda pyodbc python-3.7

我升级到python 3.7,并使用了SQL Alchemy的更新版本。这段代码可以很好地执行py中的查询,并通过pandas将它们设置为数据框。现在,我遇到类型错误,我认为根本原因是与create_engine有关,但我不太确定。我看了一下文档,引擎的创建方式似乎没有任何变化。

path = '\\blah\\'
td = create_engine("mysql+pyodbc://<Username>:<Password>@DSN") # SQL Engine

def sqlDf(sql, engine):
    sql = open(sql,'r')
    sql = text(sql.read())
    return pd.read_sql(sql,engine) #SQL Function


df = sqlDf(path+'SQL.txt', td) 
  File "C:\Users\44101\AppData\Local\Continuum\anaconda3\lib\site-packages\sqlalchemy\engine\default.py", line 552, in do_execute
    cursor.execute(statement, parameters)

TypeError: The first argument to execute must be a string or unicode query.

以前我会将数据框保存到内核。

任何帮助将不胜感激。

0 个答案:

没有答案