我得到以下错误:
File "pymon.py", line 18
sql += "'" + str(gpu['GPU Clock'] + "', "
^
如果有帮助,这是代码的一部分:
def parsedata(data, ngpu):
for gpu in data:
sql = "UPDATE pythondb SET (minerid, temp, load, hashrate, accepted, rejected, coreclock, memclock, power, hwerror) VALUES "
sql += "("
sql += "'" + str(gpu['Temperature']) + "', "
sql += "'" + str(gpu['GPU Activity']) + "', "
sql += "'" + str(gpu['MHS av'] * 1000) + "', "
sql += "'" + str(gpu['Accepted']) + "', "
sql += "'" + str(gpu['Rejected'] + "', "
sql += "'" + str(gpu['GPU Clock'] + "', "
sql += "'" + str(gpu['Memory Clock'] + "', "
sql += "'" + str(gpu['GPU Voltage'] + "', "
sql += "'" + str(gpu['Device Hardware']) + "'"
sql += ") WHERE id='%d'", ngpu
sql += ";"
return sqlstatement
我打赌这是件很愚蠢的事,但我就是找不到它是什么。你知道吗
前一行缺少右括号:
多行中缺少
str()
函数的右括号。你知道吗您确实不应该使用字符串插值来构建SQL查询;而是应该使用SQL参数。其工作方式取决于您的数据库适配器。你知道吗
例如,在
sqite3
中,使用?
作为占位符;MySQLdb使用%s
。sqlite示例如下:即使不能使用SQL参数,也应该了解Python String Formatting;然后可以:
不过,像这样在SQL语句中插入SQL值仍然是一个非常糟糕的主意。你知道吗
相关问题 更多 >
编程相关推荐