为什么这个变量类型是可选的??

时间:2017-05-28 20:48:28

标签: python mysql

我很困惑 - 我已多次编写相同的代码并且从未遇到过这个问题。我对python的了解远远超出了自学的东西,为我的iOS应用程序构建了一个带有烧瓶框架的rest api。当我进行api调用以检索此特定路径的某些数据时,MySQL会一直返回错误'因为某些原因,我传递的变量作为可选类型传递(我认为? - b / coz print语句打印:Optional(1))

有人可以解释这里发生了什么吗?为什么这个相同的代码在我的其他路径中运行良好?我甚至试过把它作为一个字符串。在我的iOS应用程序中进行api调用的函数只接受一个字符串作为参数...运行带有硬编码值的MySQL查询总是有效。

***** thwart是我重命名的MySQLdb escape_string *****

查询功能:

def checkAnswers(gameId):

    print("inside check answers function")
    print(gameId)

    id = str(gameId)

    c, conn = connection()

    data = c.execute("SELECT answer_one, answer_two FROM games WHERE game_id='%s'" % (thwart(id)))

    if data:
        return c.fetchall()
    return "error"

在正确路径下的main.py文件中我有这段代码:( print(data)总是打印'错误')

print("inside check answers path")
json = request.get_json()

gameId = str(json["gameId"])

data = checkAnswers(gameId)

print("answer data ----->")
print(data)

2 个答案:

答案 0 :(得分:0)

execute没有返回值,检查它,没有任何意义,只检查fetchall的空结果:

def checkAnswers(gameId):
    print("inside check answers function")
    print(gameId)
    id = str(gameId)
    c, conn = connection()
    c.execute("SELECT answer_one, answer_two FROM games WHERE game_id=%s", (thwart(id),))
    return c.fetchall()

答案 1 :(得分:0)

这最终成为一个xcode错误[Queue所有iOS / xcode侮辱]。即使我在xcode中正确地将变量转换为字符串,它也是作为可选项发送的...我所做的只是清理项目代码并重新启动xcode并且它按预期工作..... 3小时且头疼后来。什么修复....

感谢所有为此做出贡献的人,因为这基本上是一个无法回答的问题。