访问插入值

时间:2019-02-14 17:57:36

标签: python pandas ms-access

我在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']))

1 个答案:

答案 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()