Sql pyodbc.ProgrammingError:(';42000';
我正在编写一个python代码,它将一些非零值从excel工作表传输到SQL数据库表Sql pyodbc.ProgrammingError:(';42000';,sql,pyodbc,Sql,Pyodbc,我正在编写一个python代码,它将一些非零值从excel工作表传输到SQL数据库表 data = pd.read_excel('D:\\Python code\\srch_mtx.xlsx', index_col=0) print(data) for m in range(len(data)+1): df_col = list(data.iloc[m][data.iloc[m] > 0].index) print(df_col) df_val = list(da
data = pd.read_excel('D:\\Python code\\srch_mtx.xlsx', index_col=0)
print(data)
for m in range(len(data)+1):
df_col = list(data.iloc[m][data.iloc[m] > 0].index)
print(df_col)
df_val = list(data.iloc[m][data.iloc[m] > 0])
print(df_val)
# read database
conn = pyodbc.connect('driver={SQL Server}; server=NISHANTDHANORE\\SQLEXPRESS; database=search_matrix;'
'Trusted_Connection=yes;')
cursor = conn.cursor()
cursor.execute('SELECT*FROM search_matrix.dbo.blank')
for x, y in enumerate(df_col):
print(y)
print(df_val[x])
query = """UPDATE search_matrix.dbo.blank SET {} = {} WHERE F1='page348'""".format(y, df_val[x])
cursor.execute(query)
conn.commit()
虽然“y”的大多数值是字母字符串,但当“y”的值达到数值40时,程序会抛出如下编程错误
Traceback (most recent call last):
File "D:/SQL db connection/table_fill_v3.py", line 25, in <module>
cursor.execute(query)
pyodbc.ProgrammingError: ('42000', "[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near '40'. (102) (SQLExecDirectW)")
回溯(最近一次呼叫最后一次):
文件“D:/SQL db connection/table_fill_v3.py”,第25行,in
cursor.execute(查询)
pyodbc.ProgrammingError:('42000',“[42000][Microsoft][ODBC SQL Server驱动程序][SQL Server]在'40'附近的语法不正确。(102)(SQLExecDirectW)”)
有谁能帮我解决这个问题吗?提前谢谢请阅读,这说明代码应该在3个反勾之间,而不是3个单引号之间。