解决python3插入mysql时内容带有引号的问题


Posted in Python onMarch 02, 2020

插入mysql时,如果内容中有引号等特殊符号,会报错,

解决方法可以用反斜杠转义,还可以用pymysql的一个方法自动转义:

c = '''

北京时间9月20日晚间9点半,智能供应链服务供应商百世集团将在<a class="wt_article_link" onmouseover="WeiboCard.show(2125973432,'tech',this)" href="?zw=tech" rel="external nofollow" target="_blank">纽约证券交易所</a>正式挂牌上市,交易代码为“BSTI”。这是继<span id="usstock_ZTO"><a href="http://stock.finance.sina.com.cn/usstock/quotes/ZTO.html" rel="external nofollow" class="keyword f_st" target="_blank">中通</a></span><span id=quote_ZTO></span>快递之后第二家赴美上市的快递物流企业。 </p>
<p>

此次IPO百世集团一共发行4500万股美国存托股份(ADS),每股价格为10美元,总融资额高达4.5亿美元,为今年目前为止在美国上市的中国公司中募资规模最大的IPO。此外,百世和售股股东还允许其承销商通过超额配售权购买额外不多于675万股ADS。</p>
<p>

有中通这个“珠玉”在前,美股市场似'''

pymysql.escape_string(c)

sql = "INSERT INTO tbl_stream_copy(weburl,title,content,channelId,datetime,pubtime,website)VALUES ('%s','%s',\'%s\','%s','%s','%s','%s')" % (a,b,pymysql.escape_string(c),e,datetime,datetime,a)

补充拓展:Python中执行MySQL语句, 遇到同时有单引号, 双引号处理方式 !r, repr()

SQL语句:

insert_cmd = "INSERT INTO {0} SET {1}"
.format(db_conn.firmware_info_table, 
  ','.join(['{0}={1!r}'.format(k, str(v)) for (k, v) in info_dict.items()]))

其中{0}={1!r} 作用是设置字段的值,一般情况应该是:

{0}='{1}'.format(columnA, value)

但若value中同时有双引号和单引号("", ''),比如{'abc': '123', "def": "456"},

则会在execute(insert_cmd)时报错。

如果想保持数据原始性,不使用replace替换成统一的单引号或者双引号,

则可以使用!r来调用repr() 函数, 将对象转化为供解释器读取的形式。

repr() 返回一个对象的 string 格式。

!r 表示使用repr()替代默认的str()来返回。

注:repr是str的方法,所以value需要是string,若数据是dict等类型,需要使用str()转换成string

According to the Python 2.7.12 documentation:
!s (apply str()) and !r (apply repr()) can be used to convert the value before it is formatted.

贴出str类中的repr说明:

repr(object)
Return a string containing a printable representation of an object.
This is the same value yielded by conversions(reverse quotes).
It is sometimes useful to be able to access this operation as an ordinary function.
For many types, this function makes an attempt to return a string that would yield
an object with the same value when passed to eval(),
otherwise the representation is a string enclosed in angle brackets
that contains the name of the type of the object together with additional information
often including the name and address of the object. A class can control what this function
returns for its instances by defining a __repr__() method.

以上这篇解决python3插入mysql时内容带有引号的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python学习之asyncore模块用法实例教程
Sep 29 Python
决策树的python实现方法
Nov 18 Python
Python实现在tkinter中使用matplotlib绘制图形的方法示例
Jan 18 Python
Python发送http请求解析返回json的实例
Mar 26 Python
利用python如何处理nc数据详解
May 23 Python
python 一个figure上显示多个图像的实例
Jul 08 Python
django-crontab 定时执行任务方法的实现
Sep 06 Python
让你的Python代码实现类型提示功能
Nov 19 Python
Python多进程multiprocessing、进程池用法实例分析
Mar 24 Python
使用keras和tensorflow保存为可部署的pb格式
May 25 Python
Python 制作查询商品历史价格的小工具
Oct 20 Python
Python字符串对齐、删除字符串不需要的内容以及格式化打印字符
Jan 23 Python
python统计字符串中字母出现次数代码实例
Mar 02 #Python
python绘制玫瑰的实现代码
Mar 02 #Python
pymysql 插入数据 转义处理方式
Mar 02 #Python
python实现字符串和数字拼接
Mar 02 #Python
Python通过正则库爬取淘宝商品信息代码实例
Mar 02 #Python
基于Python爬取爱奇艺资源过程解析
Mar 02 #Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
Mar 02 #Python
You might like
PHP插入排序实现代码
2013/04/04 PHP
PHP OPP机制和模式简介(抽象类、接口和契约式编程)
2014/06/09 PHP
PHP之将POST数据转化为字符串的实现代码
2016/11/03 PHP
Yii实现微信公众号场景二维码的方法实例
2020/08/30 PHP
jquery中:input和input的区别分析
2011/07/13 Javascript
JS字符串拼接在ie中都报错的解决方法
2014/03/27 Javascript
微信浏览器内置JavaScript对象WeixinJSBridge使用实例
2015/05/25 Javascript
jquery append 动态添加的元素事件on 不起作用的解决方案
2015/07/30 Javascript
jQuery的Ajax用户认证和注册技术实例教程(附demo源码)
2015/12/08 Javascript
jQuery自动完成插件completer附源码下载
2016/01/04 Javascript
BootStrap glyphicon图标无法显示的解决方法
2016/09/06 Javascript
BootStrap网页中代码显示用法详解
2016/10/21 Javascript
使用json来定义函数,在里面可以定义多个函数的实现方法
2016/10/28 Javascript
详解微信小程序 登录获取unionid
2017/06/27 Javascript
基于jQuery实现手风琴菜单、层级菜单、置顶菜单、无缝滚动效果
2017/07/20 jQuery
基于Vue2x的图片预览插件的示例代码
2018/05/14 Javascript
vuejs点击class变化的实例
2018/09/05 Javascript
[51:17]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第二场 10月30日
2020/10/31 DOTA
[01:06:18]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第二场 1月26日
2021/03/11 DOTA
在树莓派2或树莓派B+上安装Python和OpenCV的教程
2015/03/30 Python
python实现根据主机名字获得所有ip地址的方法
2015/06/28 Python
python实现学生信息管理系统
2020/04/05 Python
python正则表达式匹配不包含某几个字符的字符串方法
2019/07/23 Python
Python利用requests模块下载图片实例代码
2019/08/12 Python
Python数据可视化:幂律分布实例详解
2019/12/07 Python
matplotlib subplot绘制多个子图的方法示例
2020/07/28 Python
django有哪些好处和优点
2020/09/01 Python
用python制作个音乐下载器
2021/01/30 Python
CSS3绘制圆角矩形的简单示例
2015/09/28 HTML / CSS
html5中canvas学习笔记2-判断浏览器是否支持canvas
2013/01/06 HTML / CSS
HomeAway澳大利亚:预订你的度假屋,公寓、度假村、别墅等
2019/02/20 全球购物
MATCHESFASHION澳大利亚/亚太地区:英国时尚奢侈品电商
2020/01/14 全球购物
银行财务部实习生的自我鉴定
2013/11/27 职场文书
合作意向协议书范本
2014/03/31 职场文书
青少年法制教育心得体会
2016/01/14 职场文书
《传颂之物 虚伪的假面》BD发售宣传CM公开
2022/04/04 日漫