我試圖從字典中使用Python將數據添加到MySQL表中。我的字典由與不同長度的值列表相關聯的鍵組成 - 長度從1到150左右。我使用插入語句將我的數據插入到表中鍵是字段名稱的表中。這是想要我的SQL INSERT語句是基本上是:在不同長度的列表中迭代
INSERT INTO table
(key1, key2, key3, ...)
VALUES
(key1value1, key2value1, key3value1, ...),
(key1value2, key2value2, key3value2, ...),
(key1value3, key2value3, key3value3, ...);
等等,但我也沒關係,以便做一個for循環讓每個組值的一個INSERT語句。這裏就是我有我的名單的第一要素:
cols = dict.keys()
vals = dict.values()
lst = [item[0] for item in vals]
sql = "INSERT INTO table (%s) VALUES (%s);" % (','.join(map(str, cols[:len(cols)])), "'{}'".format("','".join(lst)))
cursor.execute(sql)
而且這樣的作品,有效地將我的第一組數據到我的表一個新行。但問題是,當我試圖增加索引,例如項目[1],它說索引超出範圍,因爲我有一些列表只有一個元素。由於這些列表的長度都不相同,所以我需要使這個列表足夠通用,以便每個列表都有很多元素。
如果索引超出範圍,因爲它增加了一些列表,我希望它跳過這些,但繼續插入其餘的。我怎麼做?
請注意:修改查詢時使用預處理語句而不是字符串格式。 – MSeifert