gpt4 book ai didi

python - 对 SQL INSERT 语句使用 Python dict

转载 作者:IT老高 更新时间:2023-10-28 13:00:16 25 4
gpt4 key购买 nike

我正在尝试使用 dict 来执行 SQL 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 异常(我认为与逗号也包含在我拥有的一些值中的事实有关)。执行上述操作的正确方法是什么?

最佳答案

我认为关于在 MySQL 中使用它的评论并不完整。 MySQLdb 不在列中进行参数替换,只是值(IIUC) - 所以可能更像

placeholders = ', '.join(['%s'] * len(myDict))
columns = ', '.join(myDict.keys())
sql = "INSERT INTO %s ( %s ) VALUES ( %s )" % (table, columns, placeholders)
# valid in Python 2
cursor.execute(sql, myDict.values())
# valid in Python 3
cursor.execute(sql, list(myDict.values()))

但您不会在列上转义,因此您可能需要先检查它们....

http://mail.python.org/pipermail/tutor/2010-December/080701.html获得更完整的解决方案

关于python - 对 SQL INSERT 语句使用 Python dict,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9336270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com