要对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中文数据相关推荐

  1. python提取表格数据匹配_excle表格处理python|python怎么提取excle表格数据

    python怎么提取excle表格数据 通过实例来,在Excle表格中有数据和文字结合的内容 把Excle表格中的,复制--粘贴到word中. 按下ctrl F键,打开"查找和替换" ...

  2. php mysql 读取中文数据的函数_php读取mysql中文数据出现乱码的解决方法

    以下是对php读取mysql中文数据出现乱码问题的解决方法进行了介绍,需要的朋友可以过来参考下 1.PHP页面语言本身的编码类型不合适,这时候,你直接在脚本中写的中文肯定是乱码,不用说数据库了 解决方 ...

  3. 【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\ ...

  4. python批量提取pdf的数据_Python批量提取PDF文件中文本的脚本

    本文实例为大家分享了Python批量提取PDF文件中文本的具体代码,供大家参考,具体内容如下 首先需要执行命令pip install pdfminer3k来安装处理PDF文件的扩展库. import ...

  5. Python 正则提取

    import random import re #正则表达式 name = random.randint(100, 10000000)url_add = host + "/recruit// ...

  6. python 正则提取 中文,汉字

    转载于:https://www.cnblogs.com/angdh/p/10800626.html

  7. Python 正则提取字符串中的地区

    方法一 re正则 这里我查找的优先级是 市->省->自治区->县->区 代码实现 import rePATTERN = r'([\u4e00-\u9fa5]{2,5}?(?:市 ...

  8. 用sqlyog导入mysql中文数据乱码问题

    我一直都使用sqlyog客户端进行操作mysql数据库,导入导出都是非常方便操作的,一开始导入excel(.xlsx)以及csv文件还遇到一些困难,后来经常摸索也就解决了,但是这两天在导入数据的问题上 ...

  9. python正则如何匹配中文汉字

    正则表达式匹配中文汉字,在实际应用中十分常见. 比如:爬虫网页文本提取.验证用户输入标准等. 以下面文本字符串为例,匹配出astr这个字符串中的所有汉字. import re astr = '''aa ...

最新文章

  1. 人工智能的爆点来临,这些金科玉律先得掌握
  2. CodeChef TWOROADS(计算几何+拉格朗日乘数法)
  3. c语言的转义字符要求,C语言…转义字符的使用
  4. c# dataGridView 设置
  5. 单自由度振动全解:matlab理论计算 virtual.lab motion仿真Excite PU仿真
  6. 一个html文档的开始标记,如何在Python中只向HTML文档添加一个开始标记
  7. javaSE-基础篇-经典赋值:两变量值的交换
  8. 过期域名如何助力犯罪分子攻破企业防御
  9. 记录zedboard无法识别com的解决思路
  10. 54. mysqli 扩展库
  11. linux sftp 增加用户(centos)
  12. rect函数_Python基础进阶:从函数到高级魔法方法--Day 6
  13. 风控模型面试问题汇总
  14. cs服务器网页管理端,sXe服务器端怎么管理
  15. SSM毕设项目超市会员卡管理系统dq469(java+VUE+Mybatis+Maven+Mysql)
  16. 网络安全形势严峻:国内黑灰产业产值达千亿
  17. 阿里云docker安装nginx和tomcat
  18. 我的财富自由之路 - 财富的自我认知
  19. 项目管理:故事12-简单道理
  20. Linux服务器架设之FTP

热门文章

  1. 轻松掌握mysql数据库锁机制的相关原理_轻松掌握MySQL数据库锁机制的相关原理...
  2. c++ vector简单使用
  3. 2019中职计算机大赛,2019年广西职业院校技能大赛中职组《计算机平面设计》赛项竞赛规程.pdf...
  4. docker安装,无法正常启动
  5. 系统进程管理及用户登陆监控
  6. cloudera hbase集群简单思路
  7. 解决iframe 右边有空白的问题
  8. 见到了“公司”定义一个Company类,那么见到了“字段”是不是也可定义一个Column类?...
  9. WINDOWS SERVER 2003从入门到精通之配置DHCP服务器(上)
  10. javascript + css 利用div的scroll属性让TAB动感十足