“Recurso opcional não implementado (106) (SQLBindParameter)” com pyodbc

Estou sendo enlouquecida tentando descobrir isso. Estou usando o Python pela primeira vez e tentando gravar dados coletados do twitter em um banco de dados do Access 2010.

O comando que estou usando é:

cursor.execute('''insert into core_data(screen_name,retweet_count) values (?,?,)''', (sname,int(rcount)))

A mensagem de erro que está sendo retornada é:

Traceback (most recent call last):  File "C:/Documents and Settings/Administrator/PycharmProjects/clientgauge/tw_scraper.py", line 44, in <module>
cursor.execute('''insert into core_data(screen_name,retweet_count) values (?,?,)''', (sname,int(rcount))) 
pyodbc.Error: ('HYC00', '[HYC00] [Microsoft][ODBC Microsoft Access Driver]Optional feature not implemented  (106) (SQLBindParameter)')

Eu tentei várias permutações de passar os dados para o banco de dados. Se eu remover a entrada int (rcount), ela postará o primeiro valor, sname, sem nenhum problema. Assim que tento passar em mais de um parâmetro, é quando os problemas começam.

Tenho a sensação de que estou sentindo falta de algo realmente básico, mas não consigo encontrar nenhum exemplo disso que realmente tenha uma aparência semelhante ao que estou tentando fazer, e o que estou tentando NÃO é difícil ... usuário erro provavelmente :)

Qualquer ajuda seria muito apreciada.

Felicidades, Kev

O código completo é:

from twython import Twython
import pyodbc
ACCESS_DATABASE_FILE = 'C:\\data\\ClientGauge.accdb'
ODBC_CONN_STR = 'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ=%s;' %ACCESS_DATABASE_FILE
cnxn = pyodbc.connect(ODBC_CONN_STR, autocommit=True)
cursor = cnxn.cursor()
APP_KEY = '<removed>'
APP_SECRET = '<removed>'
# Authenticate on twitter using keys above
t = Twython(APP_KEY, APP_SECRET, oauth_version=2)
# Obtain new access token for this session
ACCESS_TOKEN = t.obtain_access_token()
# Authenticate using new access token
t = Twython(APP_KEY, access_token=ACCESS_TOKEN)
# Carry out search
search = t.search(q='<removed>', #**supply whatever query you want here**
         count=1, result_type='recent')
tweets = search['statuses']
for tweet in tweets:
sname=tweet['user']['screen_name']
rcount=int(tweet['retweet_count'])
fcount=tweet['favorite_count']
coord=tweet['coordinates']
tzone=tweet['user']['time_zone']
cdate=tweet['created_at']
htags=tweet['entities']['hashtags']
sql = "insert into core_data(screen_name,retweet_count,favourited_count) values (?,?,?)", (str(sname),rcount,fcount)
print(sql)
cursor.execute('''insert into core_data(screen_name,retweet_count) values (?,?)''', (sname,rcount))
cursor.commit()
cnxn.close()

Estou usando o MS Access 2010, pyodbc-3.0.7.win32-py3.3.exe, Python 3.3 e PyCharm.

Não julgue minha proeza de codificação :) Python é novo para mim. Você será capaz de ver que eu tentei definir a instrução INSERT como uma string inicialmente (sql), e eu estava chamando o cursor usando:

cursor.execute(sql)

Infelizmente, isso não funcionou para mim também! Se eu substituir o segundo parâmetro por um número como 1 ..., ele ainda não funciona. Frustrante

questionAnswers(2)

yourAnswerToTheQuestion