我正在尝试将一行插入到我在数据库中设置的表中。
我的代码:
cursor.execute("""INSERT INTO scan (prefix, code_id, answer, station) VALUES(%s, %s, %s, %s, timestamp, comport)""",[(prefix, code_id, answer, station)])
我收到一个错误,说它不喜欢“[]”中的内容。
我不完全理解“%s”是如何工作的。我尝试了很多例子,但都失败了。
我正在尝试将一行插入到我在数据库中设置的表中。
我的代码:
cursor.execute("""INSERT INTO scan (prefix, code_id, answer, station) VALUES(%s, %s, %s, %s, timestamp, comport)""",[(prefix, code_id, answer, station)])
我收到一个错误,说它不喜欢“[]”中的内容。
我不完全理解“%s”是如何工作的。我尝试了很多例子,但都失败了。
为什么你有两组括号内的参数?第二个参数应该是一个包含四个项目的序列,以匹配%s
查询中的四个 s。相反,您给了它一个包含一个项目的列表:该项目是一个包含四个项目的序列。
相反,请尝试:
cursor.execute("""INSERT INTO scan (prefix, code_id, answer, station) VALUES(%s, %s, %s, %s, timestamp, comport)""",(prefix, code_id, answer, station))
cursor.execute('INSERT INTO scan (prefix, code_id, answer, station) VALUES("%s", "%s", "%s", "%s")' %(prefix, code_id, answer, station))
如果你错过了""
周围,你可能会得到一个错误,%s
即如果你只是在值中使用%s
而不是 this 。"%s"
您可以使用 Python 新的“格式”字符串方法:
cursor.execute("""INSERT INTO scan (prefix, code_id, answer, station) VALUES({}, {}, {}, {}, timestamp, comport)""".format(prefix, code_id, answer, station))
您还可以对参数进行编号,例如“{0}”、“{1}”等。这可能是必需的,具体取决于您的 Python 版本(我认为 2.6 已经支持没有编号的参数)。
有关使用它的参考,请查看http://docs.python.org/library/string.html#format-examples