首页 > 解决方案 > Python pandas to_sql 最多2100个参数

问题描述

直到几天前,我总是将数千个参数存储到我的数据库(SQL 服务器)中。我使用 spyder (Python 3.6)。我在几天前用 conda update 更新了所有软件包,现在我无法将我的数据帧导入我的数据库。

--- 我不想在 2100 参数 DF 中拆分解决方法 ---

我想了解发生了什么变化以及为什么以及如何恢复正常工作。

这是一个简单的代码:

import pyodbc
import sqlalchemy
import numpy as np
import pandas as pd


c = pyodbc.connect("Driver={SQL Server};Server=**;Trusted_Connection=no;Database=*;UID=*;PWD=*;")
cursor = c.cursor()  
engine = sqlalchemy.create_engine('mssql+pyodbc://*:*/*?driver=SQL+Server')



df= pd.DataFrame(np.random.randn(5000))
df.to_sql('pr',engine,if_exists= 'append', index=False)

这是错误: ProgrammingError: (pyodbc.ProgrammingError) ('42000', '[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]传入的请求参数太多。服务器最多支持2100参数。减少参数数量并重新发送请求。(8003)(SQLExecDirectW)')

非常感谢

标签: pythonpandaspyodbc

解决方案


pandas 0.23 中的此错误存在一个未解决的问题(截至 2018.06.01) 。

您可能希望降级到 0.22,这将按预期工作。


推荐阅读