我尝试从一个函数中获取 3 个数据。X,Y,Z
来自函数的数据get_gyro_data()
。当我尝试执行这些数据以插入标签时TAB_MPU和列广西、贵阳、广州.我使用 i2c 从 MPU6050 获取数据
math functions
math functions
.
.
.
x= x/scaler
y= y/scaler
z=z/scaler
return {'x': x, 'y': y, 'z': z}
def get_all_data(self):
gyro = get_gyro_data()
获取陀螺仪数据后,我尝试写入数据库,如下;
while True :
mpu = MPU6050(0x68) //my sensor
gyro_data = mpu.get_gyro_data()
print(gyro_data['x'])
print(gyro_data['y'])
print(gyro_data['z'])
Time = (time.strftime("%H:%M:%S"))
Date = (time.strftime("%Y-%m-%d"))
print (Time + " - " + Date)
sql = ("""INSERT INTO `TAB_TEMP` (`Date`,`Time`,`JX`,`JY`,`JZ`,`IX`,`IY`,`IZ`) VALUES (%s,%s,%s,%s,%s,%s,%s,%s)"""(Date,Time,accel_data['x'],accel_data['y'],accel_data['z'],gyro_data['x'],gyro_data['y'],gyro_data['z']))
cursor.execute(sql) // execute sql command
当我调试程序时,出现异常 TypeError : 'str' 对象在sql= (""" INSERT .... )
第
答案1
在这一行你基本上是在做这样的事情:""()
您必须将 SQL 查询字符串和参数分开,最好在cursor.execute()
调用中这样做。如下所示:
sql = """INSERT INTO `TAB_TEMP` (`Date`,`Time`,`JX`,`JY`,`JZ`,`IX`,`IY`,`IZ`) VALUES (%s,%s,%s,%s,%s,%s,%s,%s)"""
args = (Date,Time,accel_data['x'],accel_data['y'],accel_data['z'],gyro_data['x'],gyro_data['y'],gyro_data['z'])
cursor.execute(sql, args)
此外,根据您的数据库连接器,您需要问号而不是字符串格式化程序。