[英]create a dynamic insert query in python to save data in mysql db
我在 mysql 中有一个表,我正在从 python 客户端向其中插入数据。
我正在使用插入查询将数据插入表中
代码
sql_insert_query = """ INSERT INTO Data
(`deviceID`,`date`,`timestamp`,`counter`,`rssi`,
`CO2 Sensor Value`,
`Supply DPT`,
`block`,
`floor`)
VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)"""
connection = mysql.connector.connect(host='localhost',database='minniedb',user='',
password='',auth_plugin='mysql_native_password')
cursor = connection.cursor()
"""
create 'insert_tuple' based on some api calls
"""
cursor.execute(sql_insert_query,insert_tuple)
connection.commit()
cursor.close()
connection.close()
print('inserted in db')
当一切都是静态的时,这很好用。 我有一个案例,当我的表中的列数约为 60-70 并且我从 api 获得的参数是列的子集(大约 10-15)时,这些参数每次都可以更改。 api 返回列名和值。 从 api 返回的样本可以是形式
{
'deviceID':20,
'counter' :61,
'block' :'A'
}
或者它可以是
{
'deviceID' :25,
'CO2 Sensor Value':600,
'floor' : 5
}
在这种情况下,我如何编写查询以将我从 api 收到的任何数据插入到相应的列中,并将其他数据设为 null。
你可以这样尝试:
sensor_data = {
'deviceID':20,
'counter' :61,
'block' :'A'
}
sql_insert_query = """ INSERT INTO Data {} VALUES {}""".format(tuple(sensor_data.keys()), tuple(sensor_data.values()))
PS:对于传感器数据,我建议使用谷歌 Firebase :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.