You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中优雅追加字典值以构建安全SQL语句?

优雅追加字典值构建安全SQL更新语句

你可以用以下两种简洁写法,既保持参数化查询的安全性(避免SQL注入),又不用先赋值再追加:

方法1:列表拼接

直接把字典值转成列表后和目标值的列表拼接,生成新列表传入execute:

sql = 'UPDATE table SET {} WHERE id = %s'.format(', '.join('{} = %s'.format(k) for k in column))
cursor.execute(sql, list(column.values()) + [url])

列表加法会返回包含所有字典值和url的新列表,完全满足参数要求。

方法2:解包语法(Python 3.5+)

利用Python的可迭代对象解包特性,语法更简洁:

sql = 'UPDATE table SET {} WHERE id = %s'.format(', '.join('{} = %s'.format(k) for k in column))
cursor.execute(sql, [*column.values(), url])

*column.values()会把字典的所有值解包到列表中,再直接追加url,写法清爽且可读性强。

这两种写法都延续了参数化查询的安全机制,所有动态值都通过execute的参数传递,不会直接嵌入SQL语句,彻底避免SQL注入风险。

内容的提问来源于stack exchange,提问作者GFL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 16:33:15