Python脚本在尝试创建时会生成断言错误

Python脚本在尝试创建时会生成断言错误,python,mysql,Python,Mysql,我有一段代码,它从连接到树莓的帽子上收集数据。 运行时会出现以下错误: [51.57, 22.30, 1002.01] Traceback (most recent call last): File "dbWriter.py", line 45, in <module> write2DB(record) File "dbWriter.py", line 26, in write2DB assert len(values)

我有一段代码,它从连接到树莓的帽子上收集数据。 运行时会出现以下错误:

[51.57, 22.30, 1002.01]
Traceback (most recent call last):
  File "dbWriter.py", line 45, in <module>
    write2DB(record)
  File "dbWriter.py", line 26, in write2DB
    assert len(values) == 3
AssertionError
你有:

record = ('[' + (output_humi) + ', ' + (output_temp) + ', ' + (output_pres) + ']')
record
的计算结果为单个字符串,而不是包含3个元素的列表,因此是异常

将上述内容更改为:

record = [output_humi, output_temp, output_pres]
您的格式规范中也缺少一个
{
。它应该是:

sqlText = '''INSERT INTO data(humidity, temperature, pressure) VALUES({},{}, {})'''.format(values[0], values[1], values[2])
另一种方法是使用事先准备好的声明:

sqlText = 'INSERT INTO data(humidity, temperature, pressure) VALUES(%s, %s, %s)'
mycursor.execute(sqlText, values)
在上述情况下,您将传递实际字符串作为值。我不知道列是如何定义的,但不管怎样。如果它们定义为浮点值或十进制值,字符串将转换为正确的类型

sqlText = 'INSERT INTO data(humidity, temperature, pressure) VALUES(%s, %s, %s)'
mycursor.execute(sqlText, values)