python正则提取mysql中文数据
要对mysql中的中文数据做正则匹配,就想用python,简单实用,不过碰到中文乱码问题,各种搜索,折腾了好久,总算解决了,基本上的原则就是转为utf8编码。
具体为从表中的"title"取出中文,用正则匹配其中的年级,再写入"grade"。
python版本:python-2.7.12.amd64。mysql版本:mysql-5.7.13-winx64。系统是Windows7。
python文件编码为UTF-8。
mysql设置:
=======================================
[mysqld]
sql-mode="MYSQL40"
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
[client]
default-character-set=utf8
=========================================================
python代码:
#!/usr/bin/python# -*- coding: UTF-8 -*-import MySQLdbimport re# 打开数据库连接,注意要设置charset='utf8'。
db = MySQLdb.connect("localhost","root","123456","database",charset='utf8')
# 使用cursor()方法获取操作游标
cursor = db.cursor()#查找的sql语句
sql = "select id,title from ytable"
try:# 执行SQL语句cursor.execute(sql)# 获取所有记录列表results = cursor.fetchall()
except MySQLdb.Error,e:print "Mysql Error %d: %s" % (e.args[0], e.args[1])#匹配年级的正则,注意(一|二|三|四|五|六|七|八|九)不能用[一二三四五六七八九]代替,否则出错
grade = r'(((初|高)中?)?(一|二|三|四|五|六|七|八|九)年级\s*((\(|()(上|下)(\)|)))?|(初|高)(一|二|三)\s*((\(|()(上|下)(\)|)))?)'
pattern = re.compile(grade)
jiLu = 0
for row in results:id = row[0]title = row[1].encode('UTF-8') #从数据库取出的中文字符编码为Unicode,要转为utf8,否则正则匹配出错match = pattern.search(title) #"title"里面可能包含年级,如匹配到年级,写入"grade"if match:try:print id,match.group()sql_1 = "update ytable set grade = '%s' where id = %s" % (match.group(),id)cursor.execute(sql_1)db.commit()except MySQLdb.Error,e:print "Mysql Error %d: %s" % (e.args[0], e.args[1])# 发生错误时回滚db.rollback()
#显示处理条目数jiLu += 1print jiLu# 关闭数据库连接
db.close()
python正则提取mysql中文数据相关推荐
- python提取表格数据匹配_excle表格处理python|python怎么提取excle表格数据
python怎么提取excle表格数据 通过实例来,在Excle表格中有数据和文字结合的内容 把Excle表格中的,复制--粘贴到word中. 按下ctrl F键,打开"查找和替换" ...
- php mysql 读取中文数据的函数_php读取mysql中文数据出现乱码的解决方法
以下是对php读取mysql中文数据出现乱码问题的解决方法进行了介绍,需要的朋友可以过来参考下 1.PHP页面语言本身的编码类型不合适,这时候,你直接在脚本中写的中文肯定是乱码,不用说数据库了 解决方 ...
- 【python解决SQLAlchemy+MySQL插入数据时报警告Warning: (1366, “Incorrect string value: ‘\\xD6\\xD0\\xB9\\xFA\\xB】
python解决SQLAlchemy+MySQL插入数据时报警告Warning: (1366, "Incorrect string value: '\xD6\xD0\xB9\xFA\xB1\ ...
- python批量提取pdf的数据_Python批量提取PDF文件中文本的脚本
本文实例为大家分享了Python批量提取PDF文件中文本的具体代码,供大家参考,具体内容如下 首先需要执行命令pip install pdfminer3k来安装处理PDF文件的扩展库. import ...
- Python 正则提取
import random import re #正则表达式 name = random.randint(100, 10000000)url_add = host + "/recruit// ...
- python 正则提取 中文,汉字
转载于:https://www.cnblogs.com/angdh/p/10800626.html
- Python 正则提取字符串中的地区
方法一 re正则 这里我查找的优先级是 市->省->自治区->县->区 代码实现 import rePATTERN = r'([\u4e00-\u9fa5]{2,5}?(?:市 ...
- 用sqlyog导入mysql中文数据乱码问题
我一直都使用sqlyog客户端进行操作mysql数据库,导入导出都是非常方便操作的,一开始导入excel(.xlsx)以及csv文件还遇到一些困难,后来经常摸索也就解决了,但是这两天在导入数据的问题上 ...
- python正则如何匹配中文汉字
正则表达式匹配中文汉字,在实际应用中十分常见. 比如:爬虫网页文本提取.验证用户输入标准等. 以下面文本字符串为例,匹配出astr这个字符串中的所有汉字. import re astr = '''aa ...
最新文章
- 人工智能的爆点来临,这些金科玉律先得掌握
- CodeChef TWOROADS(计算几何+拉格朗日乘数法)
- c语言的转义字符要求,C语言…转义字符的使用
- c# dataGridView 设置
- 单自由度振动全解:matlab理论计算 virtual.lab motion仿真Excite PU仿真
- 一个html文档的开始标记,如何在Python中只向HTML文档添加一个开始标记
- javaSE-基础篇-经典赋值:两变量值的交换
- 过期域名如何助力犯罪分子攻破企业防御
- 记录zedboard无法识别com的解决思路
- 54. mysqli 扩展库
- linux sftp 增加用户(centos)
- rect函数_Python基础进阶:从函数到高级魔法方法--Day 6
- 风控模型面试问题汇总
- cs服务器网页管理端,sXe服务器端怎么管理
- SSM毕设项目超市会员卡管理系统dq469(java+VUE+Mybatis+Maven+Mysql)
- 网络安全形势严峻:国内黑灰产业产值达千亿
- 阿里云docker安装nginx和tomcat
- 我的财富自由之路 - 财富的自我认知
- 项目管理:故事12-简单道理
- Linux服务器架设之FTP
热门文章
- 轻松掌握mysql数据库锁机制的相关原理_轻松掌握MySQL数据库锁机制的相关原理...
- c++ vector简单使用
- 2019中职计算机大赛,2019年广西职业院校技能大赛中职组《计算机平面设计》赛项竞赛规程.pdf...
- docker安装,无法正常启动
- 系统进程管理及用户登陆监控
- cloudera hbase集群简单思路
- 解决iframe 右边有空白的问题
- 见到了“公司”定义一个Company类,那么见到了“字段”是不是也可定义一个Column类?...
- WINDOWS SERVER 2003从入门到精通之配置DHCP服务器(上)
- javascript + css 利用div的scroll属性让TAB动感十足