【发布时间】:2019-02-15 04:12:30
【问题描述】:
我在 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 Driver] INSERT INTO 语句中的语法错误。(-3502) (SQLExecDirectW)') 文件“E:\Python\DDWebsraping\cme_oil.py”,第 83 行,在 ''',(row['MONTH'],row['SETTLE'],row['DATE'],row['REPORT_TYPE']))
【问题讨论】:
-
为什么不用
futures_table.to_sql()而不是迭代? -
如何连接access数据库,只是futures_table.to_sql("table", engine, if_exists='append')?
-
?是正确的占位符令牌吗? -
@JohnGordon 我想知道,我检查了其他问题,似乎是正确的。
-
嗯。
DATE是保留字吗?