Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于格式字符串Python MySQL的参数不足_Python_Mysql - Fatal编程技术网

用于格式字符串Python MySQL的参数不足

用于格式字符串Python MySQL的参数不足,python,mysql,Python,Mysql,我在python中遇到了这个错误,我不知道如何解决它。对不起,我的英语不是我的母语: TypeError:格式字符串的参数不足 在我的数据库中,我有五行: id int 传感器内部 数据文本 数据类型文本 fechatimestamp 我做错了什么 谢谢 这是因为值的数量与参数的数量不匹配 save_data = "INSERT INTO mediciones_historial VALUES('%s', '%s', '%s', '%s')" % (sensor, data, data_type

我在python中遇到了这个错误,我不知道如何解决它。对不起,我的英语不是我的母语:

TypeError:格式字符串的参数不足

在我的数据库中,我有五行:

id int 传感器内部 数据文本 数据类型文本 fechatimestamp

我做错了什么


谢谢

这是因为值的数量与参数的数量不匹配

save_data = "INSERT INTO mediciones_historial VALUES('%s', '%s', '%s', '%s')" % (sensor, data, data_type, fecha)

这是因为值的数量与参数的数量不匹配

save_data = "INSERT INTO mediciones_historial VALUES('%s', '%s', '%s', '%s')" % (sensor, data, data_type, fecha)
在代码中:

save_data = "INSERT INTO mediciones_historial VALUES('%s', '%s', '%s', '%s')" % (sensor, data, data_type)
%s说明符的数目与您要传递的参数数目不匹配,而且表名后缺少列名

你必须根据表中的列来做 但是python总是有更好的选择

尝试使用以下方法:

save_data = "INSERT INTO mediciones_historial(column1,column2,column3) VALUES({0},{1},{2})".format(sensor, data, data_type)
但是您必须注意数据类型,即如果它是字符串或日期类型,则使用单引号“:”{0}而不是{0}

此外,上述内容似乎更易于理解和阅读:

在您的代码中:

save_data = "INSERT INTO mediciones_historial VALUES('%s', '%s', '%s', '%s')" % (sensor, data, data_type)
%s说明符的数目与您要传递的参数数目不匹配,而且表名后缺少列名

你必须根据表中的列来做 但是python总是有更好的选择

尝试使用以下方法:

save_data = "INSERT INTO mediciones_historial(column1,column2,column3) VALUES({0},{1},{2})".format(sensor, data, data_type)
但是您必须注意数据类型,即如果它是字符串或日期类型,则使用单引号“:”{0}而不是{0}


此外,上述内容似乎更易于理解和阅读:

谢谢你的回复。现在我有一个错误:列计数与第1行的值计数不匹配。明白了。您的表架构有5列,我们在insert查询中缺少fecha列。已经更新了我上面的帖子。谢谢回复。现在我有一个错误:列计数与第1行的值计数不匹配。明白了。您的表架构有5列,我们在insert查询中缺少fecha列。我已经更新了我上面的帖子。我很高兴它帮了我的忙。你也可以接受我的回答:这太可怕了。这容易受到SQL注入的攻击。executeINSERT到mediciones_HistoricalColumn1,column2,column3值%s,%s,%s,[传感器,数据,数据类型]@csharpcoder示例的第一个变体对我来说非常有效。我努力实现第二个,我很高兴它起了作用。你也可以接受我的回答:这太可怕了。这容易受到SQL注入的攻击。executeINSERT到mediciones_HistoricalColumn1,column2,column3值%s,%s,%s,[传感器,数据,数据类型]@csharpcoder示例的第一个变体对我来说非常有效。我努力实现第二个。