我正在尝试使用dict做SQL INSERT。逻辑基本上是:
dict
INSERT
INSERT INTO table (dict.keys()) VALUES dict.values()
但是,我很难确定要执行此操作的正确语法/流程。这是我目前拥有的:
# data = {...} sorted_column_headers_list = [] sorted_column_values_list = [] for k, v in data.items(): sorted_column_headers_list.append(k) sorted_column_values_list.append(v) sorted_column_headers_string = ', '.join(sorted_column_headers_list) sorted_column_values_string = ', '.join(sorted_column_values_list) cursor.execute("""INSERT INTO title (%s) VALUES (%s)""", (sorted_column_headers_string, sorted_column_values_string))
由此我得到一个SQL异常(我认为与逗号包含在我所拥有的某些值中有关)。做上述事情的正确方法是什么?
您要向查询添加参数占位符。这可能会为您提供所需的东西:
qmarks = ', '.join('?' * len(myDict)) qry = "Insert Into Table (%s) Values (%s)" % (qmarks, qmarks) cursor.execute(qry, myDict.keys() + myDict.values())