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

Python如何替换字符串单引号为两个单引号生成合规SQL语句

高性能SQL单引号转义实现方案

最优实现(适配大批量数据处理)

直接调用Python内置字符串方法完成转义,底层为C实现,无额外Python层开销,性能拉满,无需提前统计字符串中单引号数量,自动适配任意数量单引号的替换需求:

def escape_sql_single_quote(s: str) -> str:
    return s.replace("'", "''")

效果校验

使用指定测试用例验证:

test_str = "That's John's Sister's Cat!"
print(escape_sql_single_quote(test_str))

输出结果完全符合要求:

That''s John''s Sister''s Cat!

性能说明

  • 内置str.replace()是Python中字符串替换性能最高的实现,处理速度比正则替换、手动逐字符遍历拼接快1~2个数量级,处理百万级行数据无明显性能压力。
  • 替换逻辑不存在边界遗漏,无论单引号出现在字符串头部、尾部、连续重复多少次,都能正确替换为两个连续单引号,不会出现语法错误。

最佳实践提示

非必要不手动拼接SQL,优先使用数据库驱动自带的参数化查询能力,从根源规避单引号语法冲突、SQL注入风险,完全不需要手动做转义处理,以pymysql为例:

# 参数化写法自动处理特殊字符转义
cursor.execute(
    "INSERT INTO table_name (content_col, name_col) VALUES (%s, %s)",
    ("That's John's Sister's Cat!", "Molly's cat is blue")
)

如果是生成离线SQL脚本、无法使用参数化接口的场景,直接使用上述replace转义方案即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 15:31:57