SQLite / python:' str' object不可调用错误

时间:2015-01-16 17:56:14

标签: python sql pycharm

我是python的新手,我有一个错误,我试图自己解决几个小时而没有结果。 (我使用Pycharm& SQLite)。这是我的代码:

Id = cur.execute("select id from abonnement where libelle=%s and prix=%s and estPackGar=%s ;" (abonnement.libelle, abonnement.prix, abonnement.estPackGar))

这就是我得到的那条线:

TypeError: 'str' object is not callable

我对导致这种情况的原因一无所知。好吗?

1 个答案:

答案 0 :(得分:1)

您错过了%,因此格式化不会按照您的意愿应用。相反,你需要:

Id = cur.execute("select id from abonnement where libelle=%s and prix=%s and estPackGar=%s ;" % (abonnement.libelle, abonnement.prix, abonnement.estPackGar))

至于你得到错误的原因: 基本上你的错误信息是由字符串后面的括号直接产生的,一个简化的例子是

"abc %s"(variable)

在这种情况下,python尝试调用"abc %s",就好像它是一个失败的函数,因为它实际上是一个字符串。这就是为什么你得到" str不可调用"错误。但是,如果您正确使用字符串格式,那么您将获得所需的结果:

"abc %s"%(variable)

我建议改为使用.format,请参阅此PEP:https://www.python.org/dev/peps/pep-3101/以及此问题以获取更多相关详细信息:Python string formatting: % vs. .format