Python PYODBC MS Access插入错误-参数太少

Python PYODBC MS Access插入错误-参数太少,python,twitter,ms-access-2013,pyodbc,Python,Twitter,Ms Access 2013,Pyodbc,我目前正在从事一个项目,该项目接收推文,进行快速情绪分析,并将推文ID、推文日期、推文文本和推文情绪极性加载到MS Access表中(Office 2013)。我已经将输出转换为字符串,除了用于匹配表(测试)数据类型的字符串。这是我的密码: from pattern.web import Twitter import time import pyodbc from textblob import TextBlob cnxn = pyodbc.connect(r'DRIVER={Microsof

我目前正在从事一个项目,该项目接收推文,进行快速情绪分析,并将推文ID、推文日期、推文文本和推文情绪极性加载到MS Access表中(Office 2013)。我已经将输出转换为字符串,除了用于匹配表(测试)数据类型的字符串。这是我的密码:

from pattern.web import Twitter
import time
import pyodbc
from textblob import TextBlob

cnxn = pyodbc.connect(r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=C:...SentimentAnalysis.accdb;')
cursor = cnxn.cursor()

s = Twitter().stream('#testhash')
for i in range(25):
    time.sleep(1)
    s.update(bytes=1024)
    if s:
        Ident = str(s[-1].id)
        TweetDate = str(s[-1].date)
        TweetText = str(s[-1].text.encode('utf8'))
        x = s[-1].text
        blob = TextBlob(x)
        sent = blob.sentiment.polarity
        cursor.execute('insert into Test([Ident],[TweetDate],[TweetText],[TweetSentiment]) values (Ident,TweetDate,TweetText,sent);')
        cnxn.commit()
        print 'Inserted: ', Ident
    else: ''
    s.clear()
问题是我得到了以下错误:

pyodbc.Error:('07002','[07002][Microsoft][ODBC Microsoft Access 驱动程序]参数太少。应为4。(-3010)(SQLExecDirectW)“”)


我看过其他关于这个错误的帖子,但大多数都是因为Access中的双引号问题。由于我只使用了单引号,但仍然得到了这个问题,我被难住了。这简直快把我逼疯了!任何帮助都将不胜感激

您的SQL语句将标识符
Ident
TweetDate
等包含为文本,Access Datatabase引擎将它们视为参数占位符。您需要做的是在命令文本中创建实际的参数占位符,然后传递参数值。例如:

sql=”“”\
插入[测试]([Ident]、[TweetDate]、[TweetText]、[tweetTouction])
值(?,,?,?)
"""
参数=(标识、TweetDate、TweetText、已发送)
cursor.execute(sql,params)
cnxn.commit()