我正在尝试将一行插入到我在数据库中设置的表中。
我的代码:
cursor.execute("""INSERT INTO scan (prefix, code_id, answer, station) VALUES(%s, %s, %s, %s, timestamp, comport)""",[(prefix, code_id, answer, station)])
我遇到的错误是说它不喜欢“[]”中的内容。
我不完全理解“%s”的工作原理。我尝试了很多例子,但都失败了。
得到了这个例子答案 0 :(得分:2)
为什么在两组括号内有参数?第二个参数应该是一个包含四个项目的序列,以匹配查询中的四个%s
。相反,你给它一个包含一个项目的列表:该项目是一个包含四个项目的序列。
相反,请尝试:
cursor.execute("""INSERT INTO scan (prefix, code_id, answer, station) VALUES(%s, %s, %s, %s, timestamp, comport)""",(prefix, code_id, answer, station))
答案 1 :(得分:0)
cursor.execute('INSERT INTO scan (prefix, code_id, answer, station) VALUES("%s", "%s", "%s", "%s")' %(prefix, code_id, answer, station))
如果您错过""
周围的%s
,即使您在值中使用%s
而非"%s"
,则可能会收到错误。
答案 2 :(得分:-1)
您可以使用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