我在Access中创建了一个表,并且该连接有效,但是使用iterrows()
遍历数据框时出现语法错误。
我尝试删除空格并更改语法。
for index, row in futures_table.iterrows():
cursor.execute('''
INSERT INTO cme_oil_futures (MONTH,SETTLE,DATE,REPORT_TYPE)
VALUES (?,?,?,?)
''',(row['MONTH'],row['SETTLE'],row['DATE'],row['REPORT_TYPE']))
conn.commit()
期望的结果是将每一行的值插入到数据框的“ MONTH”,“ SETTLE”,“ DATE”和“ REPORT_TYPE”列中。
我得到的错误是“
发生异常:pyodbc.ProgrammingError (“ 42000”,“ [42000] [Microsoft] [ODBC Microsoft Access驱动程序] INSERT INTO语句中的语法错误。(-3502)(SQLExecDirectW)”) 文件“ E:\ Python \ DDWebsraping \ cme_oil.py”,第83行,在 ''',(row ['MONTH'],row ['SETTLE'],row ['DATE'],row ['REPORT_TYPE']))
答案 0 :(得分:0)
尝试以下代码。我认为您只需要在各个领域加上括号即可。 MS Access是一种奇怪而神秘的野兽。
for index, row in futures_table.iterrows():
cursor.execute('''
INSERT INTO cme_oil_futures ([MONTH],[SETTLE],[DATE],[REPORT_TYPE])
VALUES (?,?,?,?)
''',(row['MONTH'],row['SETTLE'],row['DATE'],row['REPORT_TYPE']))
conn.commit()