python&MySQLdb TypeError('不是所有参数在字符串格式化过程中转换',)

2024-06-26 13:37:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在谷歌上搜索,没法解决我的问题。在

在我的代码的早期部分,我有许多查询使用参数,但在我以前的例子中,我只传递字符串。我也知道我的查询是有效的,因为我已经在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是一个整数。在

当我运行这段代码时,我得到一个错误:

^{pr2}$

如果有帮助的话,我可以在macosx10.9.5上运行python2.7和MySQL服务器 提前感谢您的帮助!在


Tags: and字符串代码参数typecursor例子ca
3条回答

回答,因为我没有足够的声誉来评论。你能报告一下在你之前替换'%s'时发生了什么吗cursor.execute?在

试着去做

CreateTempTable2 %(CA, Rank)

看看有没有变化

args2 = CA, Rank

^{pr2}$

一点帮助都没有。看看这个SO answer。在

哎呀!我发现我的问题实际上是在下面的一个查询中,我只是使用了错误的变量名!在

所以上面的查询没有问题-它确实有效。在

感谢所有回应的人!在

相关问题 更多 >