我正在使用python程序将数据记录到MySQL数据库。已建立数据库连接,但在写入日志时出现以下错误Type Error: format requires a mapping
。
感兴趣的代码如下:
MySQL表:
CREATE TABLE pidRun
(
pidKey INT auto_increment PRIMARY KEY,
pidSetPoint INT,
pidMeasure FLOAT,
pidError FLOAT,
integrator FLOAT,
derivator FLOAT
);
Python代码:
# Insert a new line to table pidRun
add_pidRun = ("INSERT INTO pidRun "
"(pidSetPoint, pidMeasure, pidError, integrator, derivator)"
"VALUES (%(pidSetPoint)i, %(pidMeasure)f, %(pidError)f, %(integrator)f, %(derivator)f)")
然后在必要点插入行的代码在这里:
data_pidRun = (pidControl.getPoint(), centSpeed, errSpeed, 0.0, 0.0)
cursor.execute(add_pidRun, data_pidRun)
dBase.commit()
pidControl.getPoint是一个整数
centSpeed是一个浮动
errspeed是一个浮动
任何方向都非常感谢。
答案 0 :(得分:0)
正如错误所示,像state
这样的占位符需要将映射传递给%(pidSetPoint)
。由于您使用元组,请将占位符更改为cursor.execute()
:
"%s"
您无需指定值的类型。