我一直在谷歌上搜索,无法解决我的问题。
我有许多查询在我的代码的早期部分使用参数,但在我之前的情况下,我只是传递字符串。我也知道我的查询确实有效,因为我在Sequel Pro中尝试过它。
然后这一切都落在了这段代码上:
CA = 'CA10'
Rank = 5
CreateTempTable2 = "CREATE TEMPORARY TABLE IF NOT EXISTS BadTranscripts AS " + \
"(SELECT DISTINCT Transcript FROM Exon_InDelCons X, Exons E2, EnsSequences G WHERE " + \
"CA = %s AND (Type = 'inserted' OR Type = 'deleted') AND Length > 11 " + \
"AND X.Transcript = E2.EnsTranscriptId AND E2.Rank < %s " + \
"AND X.Exon = E2.EnsExonId AND E2.EnsParentId = G.GenomicEnsId)"
args2 = CA, Rank
try:
cursor.execute(CreateTempTable2, args2)
cursor.connection.autocommit(True)
except Exception, e:
print "Can't create Temp Table BadTranscripts", repr(e)
CA是一个字符串,Rank是一个整数。
当我运行此代码时,我收到错误:
TypeError('not all arguments converted during string formatting',)
如果有助于我在Mac OSX10.9.5上运行python2.7和MySQL Server 感谢您的帮助!
答案 0 :(得分:0)
答案 1 :(得分:0)
糟糕!我发现我的问题实际上是在以下查询中,我只是使用了不正确的变量名称!
所以上面的查询没有问题 - 它确实有效。
感谢所有回复的人!
答案 2 :(得分:-1)
回答,因为我没有足够的声誉来发表评论。你可以报告在cursor.execute之前替换&#39;%s之后会发生什么?
尝试做
CreateTempTable2 %(CA, Rank)