to_sql - “不能在类字节对象上使用字符串模式”

时间:2017-04-26 18:54:49

标签: python pandas sqlalchemy pypyodbc

我正在尝试使用pandas,sqlalchemy和pypyodbc将我的数据帧(df2)写入我的sql数据库中的表。我已经使用pypyodbc成功连接到数据库。但是,当我尝试使用带有to_sql的引擎时,它会在标题中抛出错误。我认为在解析引擎创建字符串时,我在urllib部分中遗漏了一些内容。

这是我的代码段:

connStr = "Driver=SQL Server Native Client 10.0; Server=Sname-L\SQLEXPRESS;database=DBname;trusted_connection=yes;"

connEncodedStr = urllib.parse.quote_plus(connStr)

engine = sqlalchemy.create_engine("mssql+pyodbc:///?odbc_connect={}".format(connEncodedStr),module=pypyodbc,echo=True)

df2.to_sql('db_table2', engine, if_exists='replace')

print(engine)

结果:

Engine(mssql+pyodbc:///?odbc_connect=Driver=SQL Server Native Client 10.0; Server=Sname-L\SQLEXPRESS;database=DBname;trusted_connection=yes;)

这是追溯:

Traceback (most recent call last):
   File "C:\Users\user\AppData\Local\Continuum\Anaconda3\lib\site-packages\s
qlalchemy\pool.py", line 1122, in _do_get
     return self._pool.get(wait, self._timeout)
   File "C:\Users\user\AppData\Local\Continuum\Anaconda3\lib\site-packages\s
qlalchemy\util\queue.py", line 145, in get
     raise Empty
sqlalchemy.util.queue.Empty

然而,这也发生了:

During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "noaadatamanip_datafram.py", line 50, in <module>
    df2.to_sql('db_table2', engine, if_exists='replace')
  File "C:\Users\user\AppData\Local\Continuum\Anaconda3\lib\site-packages\p
andas\core\generic.py", line 1201, in to_sql
    chunksize=chunksize, dtype=dtype)

上面的代码继续了很多行,并在标题中返回错误。让我知道如果发布整个内容会有所帮助。

提前抱歉,我的错误处理技巧非常低。

0 个答案:

没有答案