解决python 执行sql语句时所传参数含有单引号的问题


Posted in Python onJune 06, 2020

在编写自己的程序时,需要实现将数据导入数据库,并且是带参数的传递。

执行语句如下:

sql_str = "INSERT INTO teacher(t_name, t_info, t_phone, t_email) VALUES\
(\'%s\', \'%s\', \'%s\', \'%s\')" % (result, result2, phoneNumber, Email)

cur.execute(sql_str)

执行程序后,产生错误:

ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '07、PRICAI'08、ACML'09 程序委员会主席/共同主席,多次担任 ACM K' at line 1")

发现是因为result2参数为一个字符串,而字符串中出现了单引号 ',mysql语句受到影响报错。

原本认为这个问题应该会是有标准解决方案,可是网上查询了一下,遇到这个问题的人不少,但没有很好的方法解决。

于是考虑了一下,可以让sql语句在读取到单引号时,知道这是字符串文本的单引号,所以可以将参数中单引号替换为 \' ,这样或许可以顺利语句如下:

result2 = result2.replace("'","\\'") #将result2中的 ' 替换为 \'

PS: 这里请务必看清双引号以及反斜杠的使用:)

经过测试,问题得到了顺利解决。

补充知识:python动态生成变量及sql语句与DF表转化

先说效果:

解决python 执行sql语句时所传参数含有单引号的问题

如图,本来是这样的一个DF表,表示各字段限制条件(A、B、C、D均为字段名)

解决python 执行sql语句时所传参数含有单引号的问题

通过下面步骤转化为一条sql语句,当然也做了反向操作

for i in range(3):
locals()['f'+str(i)]=[]

import pandas as pd
import numpy as np
a = pd.DataFrame({"A":[">=",5],
     "B":["<",6],
     "C":["in",'("ha","he")'],
     "D":["like","*q*"]
     })
print(a)
b = []
for i in a.columns:
 b.append(str(i)+" "+str(a[i][0])+" "+str(a[i][1]).strip())
c = " and ".join(b)
 #b = b+str(i)+" "+str(a[i][0])+" "+str(a[i][1])+" "+"and"+" "
#print(c)

d = c.split(" and ")
for i in range(3):
 locals()['f'+str(i)]=[]
 for j in (range(len(d))):
  f = d[j].split(" ")
  locals()['f' + str(i)].append(f[i])

print(f0,f1,f2)
g = pd.DataFrame(columns=f0,data=[f1,f2])
print(g)

以上这篇解决python 执行sql语句时所传参数含有单引号的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python通过90行代码搭建一个音乐搜索工具
Jul 29 Python
一步步教你用Python实现2048小游戏
Jan 19 Python
python 通过logging写入日志到文件和控制台的实例
Apr 28 Python
python与字符编码问题
May 24 Python
python利用wx实现界面按钮和按钮监听和字体改变的方法
Jul 17 Python
Pandas DataFrame中的tuple元素遍历的实现
Oct 23 Python
pytorch 图像中的数据预处理和批标准化实例
Jan 15 Python
PyCharm 无法 import pandas 程序卡住的解决方式
Mar 09 Python
Python如何实现定时器功能
May 28 Python
基于TensorFlow的CNN实现Mnist手写数字识别
Jun 17 Python
Python如何对齐字符串
Jul 30 Python
Python字符串的15个基本操作(小结)
Feb 03 Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
Jun 06 #Python
python 解决mysql where in 对列表(list,,array)问题
Jun 06 #Python
在python中使用pyspark读写Hive数据操作
Jun 06 #Python
使用Python构造hive insert语句说明
Jun 06 #Python
Python通过kerberos安全认证操作kafka方式
Jun 06 #Python
pandas分批读取大数据集教程
Jun 06 #Python
python使用hdfs3模块对hdfs进行操作详解
Jun 06 #Python
You might like
PHP取得一个类的属性和方法的实现代码
2011/05/22 PHP
PHP得到mssql的存储过程的输出参数功能实现
2012/11/23 PHP
PHP转换文件夹下所有文件编码的实现代码
2013/06/06 PHP
通过PHP current函数获取未知字符键名数组第一个元素的值
2013/06/24 PHP
JavaScript 动态创建VML的方法
2009/10/14 Javascript
jquery创建一个ajax关键词数据搜索实现思路
2013/02/26 Javascript
从数据库读取数据后将其输出成html标签的三种方法
2014/10/13 Javascript
JS常用函数使用指南
2014/11/23 Javascript
javascript几个易错点记录
2014/11/26 Javascript
BootStrap使用file-input插件上传图片的方法
2016/09/05 Javascript
从零学习node.js之mysql数据库的操作(五)
2017/02/24 Javascript
如何解决日期函数new Date()浏览器兼容性问题
2019/09/11 Javascript
[32:56]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.11
2020/12/16 DOTA
整理Python中的赋值运算符
2015/05/13 Python
Python 模板引擎的注入问题分析
2017/01/01 Python
Android分包MultiDex策略详解
2017/10/30 Python
Python cookbook(数据结构与算法)从字典中提取子集的方法示例
2018/03/22 Python
利用pandas将numpy数组导出生成excel的实例
2018/06/14 Python
Pycharm配置远程调试的方法步骤
2018/12/17 Python
Python实现的序列化和反序列化二叉树算法示例
2019/03/02 Python
int在python中的含义以及用法
2019/06/27 Python
python自动分箱,计算woe,iv的实例代码
2019/11/22 Python
Python3实现发送邮件和发送短信验证码功能
2020/01/07 Python
Python图像处理库PIL的ImageGrab模块介绍详解
2020/02/26 Python
用opencv给图片换背景色的示例代码
2020/07/08 Python
用CSS3实现背景渐变的方法
2015/07/14 HTML / CSS
荷兰时尚精品店:Labels Fashion
2020/03/22 全球购物
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
TecoBuy澳大利亚:在线电子和小工具商店
2020/06/25 全球购物
后勤人员自我鉴定
2013/10/20 职场文书
电脑教师的自我评价
2013/12/18 职场文书
2014国庆65周年领导讲话稿(3篇)
2014/09/21 职场文书
个人四风问题对照检查材料
2014/09/26 职场文书
自主招生自荐信范文
2015/03/04 职场文书
Python实现为PDF去除水印的示例代码
2022/04/03 Python
pd.drop_duplicates删除重复行的方法实现
2022/06/16 Python