python - 忽略python中的转义字符
问题描述
我正在尝试将标题插入数据库。有时标题有引号,它会引发错误。
我不能用 \" 替换引号,因为它认为我正在转义引号。
sql = 'UPDATE `table_name` SET `title`="{}";'
title = 'A "Title" With Quotes'
sql.format(title.replace('"','\"'))
这会用更多的引号替换引号,因此它不会改变任何内容。
'UPDATE `table_name` SET `title`="A "Title" With Quotes";'
如果我试图逃避反斜杠,它不会逃避任何东西。
sql.format(title.replace('"','\\"'))
'UPDATE `table_name` SET `title`="A \\"Title\\" With Quotes";'
解决方案
最好的方法是使用三引号,将里面的文本解释为字符串:
sql = """UPDATE `table_name` SET `title`="{}";"""
你可以格式化它是你想要的:
sql = """UPDATE `table_name` SET `title`="{}";""".format('A \\"B\\"')
print(sql)
输出:
UPDATE `table_name` SET `title`="A \"B\"";
适用于 MySQL
推荐阅读
- javascript - React - 动画数组中的第一个新元素
- material-ui - 输入组件没有接受道具?
- regex - 我如何从每一行中提取一些特定的单词?
- python - python中从文件到字符串utf-8的字符串
- rollup - rollupjs 避免使用多个文件的重复功能
- ruby-on-rails - Heroku [remote denied] master -> master (pre-receive hook denied) 疑难解答
- android - 将 Alpha 蒙版应用于 OpenGL 中的视频
- python - 如何高效地按小时查询大型数据库?
- tensorflow - 使用 from_generator 创建 SparseTensors 的 TF 数据集
- php - 如何使用正则表达式查找以“$”开头的所有数字