使用 Python 处理 sql 时的撇号 (') 帮助

Posted

技术标签:

【中文标题】使用 Python 处理 sql 时的撇号 (\') 帮助【英文标题】:Apostrophe (') help when dealing with sql using Python使用 Python 处理 sql 时的撇号 (') 帮助 【发布时间】:2012-02-19 06:10:22 【问题描述】:

我正在尝试读入内容并编写插入语句以使用 Python 创建一个 sql 脚本。

当我阅读的内容包含一个撇号时我遇到了一个问题,我不确定如何解决这个问题,因为我不能简单地将 (') 替换为我正在处理的任何其他字符使用 asciimathml(数学数据),我不能只更改已阅读的内容。

非常感谢!

【问题讨论】:

如果撇号对您来说是个问题,那么您还没有转义您的数据(在将其用作 SQL 查询的一部分之前您必须这样做)。请参阅xkcd.com/327 以获取输入字符串的示例,该示例特别...有趣...让您处理未转义。 快速搜索“python sql 参数”找到了this question - 如果不合适(使用不同的 sql 库?),然后进行搜索,包括库的名称和单词“参数”/ 【参考方案1】:

您可以使用其中一个 escape_string 函数(每个 db 包都提供一个)将单引号加倍或在其前面加上反斜杠。但是如果你使用参数替换,你会好得多。例如:

cursor.execute("INSERT INTO Test (column1, column2) VALUES (?, ?)", "It's all right", 45)

这样做,服务器将确保您的字符串正确转义。

【讨论】:

以上是关于使用 Python 处理 sql 时的撇号 (') 帮助的主要内容,如果未能解决你的问题,请参考以下文章

任何允许 Pivot 中的撇号 SQL 列别名的安全问题?

删除python numpy矩阵上的撇号

忽略包含中的撇号

Selenium IDE - 由于字符串中的撇号,“执行脚本”中的变量无法使用

XPath 查询中的撇号 (')

Discord:命令参数中的撇号在 C# 中不起作用