解决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中操作时间之mktime()方法的使用教程
May 22 Python
Python更新数据库脚本两种方法及对比介绍
Jul 27 Python
Django如何实现内容缓存示例详解
Sep 24 Python
python实现简单中文词频统计示例
Nov 08 Python
解决pycharm界面不能显示中文的问题
May 23 Python
pandas DataFrame实现几列数据合并成为新的一列方法
Jun 08 Python
django进阶之cookie和session的使用示例
Aug 17 Python
Python读取mat文件,并保存为pickle格式的方法
Oct 23 Python
Python实现随机创建电话号码的方法示例
Dec 07 Python
Python数据分析模块pandas用法详解
Sep 04 Python
python dir函数快速掌握用法技巧
Dec 09 Python
关于python类SortedList详解
Sep 04 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 和 MySQL 基础教程(三)
2006/10/09 PHP
PHP 字符串长度判断效率更高的方法
2014/03/02 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
2017/07/03 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
2017/11/17 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
jQuery事件之键盘事件(ctrl+Enter回车键提交表单等)
2014/05/11 Javascript
JavaScript中最简洁的编码html字符串的方法
2014/10/11 Javascript
js生成验证码并直接在前端判断
2015/05/15 Javascript
AngularJS学习笔记之ng-options指令
2015/06/16 Javascript
javascript实现3D变换的立体圆圈实例
2015/08/06 Javascript
AngularJS中实现用户访问的身份认证和表单验证功能
2016/04/21 Javascript
深入理解jquery跨域请求方法
2016/05/18 Javascript
BootStrap的Datepicker控件使用心得分享
2016/05/25 Javascript
JS实现页面进入和返回定位到具体位置
2016/12/08 Javascript
AngularJS中update两次出现$promise属性无法识别的解决方法
2017/01/05 Javascript
AngularJS表格样式简单设置方法示例
2017/03/03 Javascript
详解Vue2 无限级分类(添加,删除,修改)
2017/03/07 Javascript
JS仿Base.js实现的继承示例
2017/04/07 Javascript
AngularJS动态添加数据并删除的实例
2018/02/27 Javascript
vue2.0 实现页面导航提示引导的方法
2018/03/13 Javascript
Bootstrap Table中的多选框删除功能
2018/07/15 Javascript
微信小程序实现bindtap等事件传参
2019/04/08 Javascript
Vue使用NProgress的操作过程解析
2019/10/10 Javascript
JavaScript遍历数组的方法代码实例
2020/01/14 Javascript
[02:19]DOTA2上海特级锦标赛 观赛指南 Spectator Guide
2016/02/04 DOTA
django之session与分页(实例讲解)
2017/11/13 Python
用Python解决x的n次方问题
2019/02/08 Python
面试自我评价范文
2014/09/17 职场文书
党员教师个人对照检查材料(群众路线)
2014/09/26 职场文书
2014年助理政工师工作总结
2014/12/19 职场文书
出纳岗位职责
2015/01/31 职场文书
因个人原因离职的辞职信范文
2015/05/12 职场文书
瞿秋白纪念馆观后感
2015/06/10 职场文书
会计入职心得体会
2016/01/22 职场文书
javascript条件式访问属性和箭头函数介绍
2021/11/17 Javascript
解决Mysql中的innoDB幻读问题
2022/04/29 MySQL