[英]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.