将变量值插入MySql&中的变量列。蟒蛇

时间:2014-04-26 16:34:46

标签: python mysql

我有两个清单。

一个来自传感器的输出字符串列表。 例如

output = "1,2,3,4,5,6"
output = output.split (',')

第二个列表是列标题

columns = "date,time,name,age,etc,etc2"
columns = columns.split (',')

列变量的顺序与输出值的变化一样。

我想使用columns变量将日期上传到mysql,以指示值的字段和输出变量。

这是我的代码,它不会将列作为列表仅作为单个值显示?

#!/usr/bin/python

from device import output
from device import columns

mydb = MySQLdb.connect(host="localhost", user="", passwd="", db="")
cursor = mydb.cursor()

with mydb:
    cursor.execute('INSERT INTO logging(columns) '\
         'VALUES(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)', output)

错误

Traceback (most recent call last):
  File "./upload4.py", line 27, in <module>
    'VALUES(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)', output)
  File "/usr/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 174, in execute
    self.errorhandler(self, exc, value)
  File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
_mysql_exceptions.OperationalError: (1136, "Column count doesn't match value count at row 1")

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

查询应该以这种方式构建:

  

&#39; INSERT INTO logging({})VALUES({})&#39; .format(&#39;,&#39; .join(列),&#39;,&#39; .join([&#39;%s&#39;] * len(列)))