python3 插入 mysql 时内容带有特殊字符处理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python3 插入 mysql 时内容带有特殊字符处理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3638字,纯文字阅读大概需要6分钟。
内容图文
![python3 插入 mysql 时内容带有特殊字符处理](/upload/InfoBanner/zyjiaocheng/869/bcd942ee2cf14dbf84325d8e6e11fb38.jpg)
一、概述
插入mysql时,如果内容中有引号等特殊符号,会报错,简单的解决方法可以用反斜杠转义,还可以用 pymysql 的方法(pymysql.escape_string)自动转义:
使用举例:
c = ''' 北京时间9月20日晚间9点半,智能供应链服务供应商百世集团将在<a class="wt_article_link" "WeiboCard.show(2125973432,'tech',this)" href="?zw=tech" target="_blank">纽约证券交易所</a>正式挂牌上市,交易代码为“BSTI”。这是继<span id="usstock_ZTO"><a href="http://stock.finance.sina.com.cn/usstock/quotes/ZTO.html" 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> 有中通这个“珠玉”在前,美股市场似''' 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)
二、演示
环境说明
mysql ip: 10.212.82.54
mysql 版本:5.7
建表语句
CREATE TABLE `test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `classify` varchar(64) DEFAULT NULL, `content` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
字符串
这里先临时指定一段字符串插入
完整代码如下:
# !/usr/bin/python3 # -*- coding: utf-8 -*- import pymysql conn = pymysql.connect( host="10.212.82.56", # mysql ip地址 user="root", passwd="123456", port=3306 # mysql 端口号,注意:必须是int类型 ) cur = conn.cursor() # 创建游标 c = '''北京时间9月20日晚间9点半,智能供应链服务供应商百世集团将在<a class="wt_article_link" "WeiboCard.show(2125973432,'tech',this)" href="?zw=tech" target="_blank">纽约证券交易所</a>正式挂牌上市,交易代码为“BSTI”。这是继<span id="usstock_ZTO"><a href="http://stock.finance.sina.com.cn/usstock/quotes/ZTO.html" 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> 有中通这个“珠玉”在前,美股市场似''' # sql = "" sql = "INSERT INTO qunar.test(classify,content)VALUES ('%s',\'%s\')" % ('新闻',pymysql.escape_string(c)) cur.execute(sql) conn.commit() # 主动提交,否则执行sql不生效 cur.close()
执行代码,查看表记录
读取excel
现有一个excel,需要根据excel内容,插入到mysql中。不管它到底包含多么复杂的特殊字符
excel内容如下:
完整代码如下:
import pymysql conn = pymysql.connect( host="10.212.82.56", # mysql ip地址 user="root", passwd="egzZAtpHxoshRc2j", port=3306 # mysql 端口号,注意:必须是int类型 ) cur = conn.cursor() # 创建游标 import xlrd # 打开excel文件,创建一个workbook对象 rbook = xlrd.open_workbook('test1.xls') # sheets方法返回对象列表,[<xlrd.sheet.Sheet object at 0x103f147f0>] rbook.sheets() # xls默认有3个工作簿,Sheet1,Sheet2,Sheet3 rsheet = rbook.sheet_by_index(0) # 取第一个工作簿 for row in rsheet.get_rows(): classify_row = row[0] # 分类所在的列 content_row = row[1] classify_value = classify_row.value # 分类的值 if classify_value != '分类': # 排除第一行 content_value = content_row.value # 内容的值 # print(classify_value,content_value) sql = "INSERT INTO qunar.test(classify,content)VALUES ('%s',\'%s\')" % (classify_value, pymysql.escape_string(content_value)) cur.execute(sql) conn.commit() # 主动提交,否则执行sql不生效 cur.close()
执行脚本,查看mysql表
依然可以!
本文参考链接:
https://blog.csdn.net/weixin_41287692/article/details/89315051
内容总结
以上是互联网集市为您收集整理的python3 插入 mysql 时内容带有特殊字符处理全部内容,希望文章能够帮你解决python3 插入 mysql 时内容带有特殊字符处理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。