我正在尝试使用字典中的 Python 将数据添加到 MySQL 表中。我的字典由与不同长度的值列表相关联的键组成——长度从 1 到 150 左右不等。我正在使用插入语句将我的数据插入到键是字段名称的表中。这就是我希望 sql insert 语句基本上是:
INSERT INTO table
(key1, key2, key3, ...)
VALUES
(key1value1, key2value1, key3value1, ...),
(key1value2, key2value2, key3value2, ...),
(key1value3, key2value3, key3value3, ...);
依此类推,但我也可以使用 for 循环来为每组值创建一个插入语句。这是我列表中第一个元素的内容:
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)
这有效,有效地将我的第一组数据插入到我表中的一个新行中。但问题是当我尝试增加 lst 中的索引时,例如到 item[1],它说索引超出范围,因为我有一些只有一个元素的列表。而且由于列表都是不同的长度,我需要使其足够通用,以便它始终可以处理每个列表具有的元素数量。
如果某些列表的索引随着它的增加而超出范围,那么我希望它跳过那些但继续插入其余的。我怎么做?