Python MySQLdb 使用utf-8 编码插入中文数据问题


Posted in Python onMarch 13, 2018

最近帮伙计做了一个从网页抓取股票信息并把相应信息存入MySQL中的程序。

使用环境:

Python 2.5 for Windows
MySQLdb 1.2.2 for Python 2.5
MySQL 4.1.22

在写程序中遇到了些怪的故障。

第一个问题:插入中文失败

 这个是由于字符编码问题引起的。MySQL安装时我已经设置为utf8编码,表也是使用utf8编码建立。程序中只要在开头写好#-*- coding: utf-8 -*-,并在设定连接字符串时候写清使用utf8就可以了conn=MySQLdb.connect(host="127.0.0.1",user="webdb",passwd="web123",db="web",charset="utf8")。设置之后从MySQL中取出的以utf8编码保存的中文也不会发生乱码。

对中文字符串,如:a = "浦发银行",在进行插入操作前做一下编码转换a = a.decode("gbk").encode("utf-8")。然后进行插入操作就没有任何问题了。

第二个问题:能插入之后无法在MySQL中保存刚才插入的数据

经过检查数据可以被正确的插入,但是连接断开之后不保存在表中。经过检查发现原来是漏了conn.commit()。需要在语句执行之后提交操作。

源代码如下。

#-*- coding: utf-8 -*-
import sys,MySQLdb
conn=MySQLdb.connect(host="127.0.0.1",user="webdb",passwd="web123",db="web",charset="utf8") #需要设定一下charset为utf-8
cursor=conn.cursor() #生成连接的指针对象
#进行字符串编码转换并进行插入
a = "浦发银行"
a = a.decode("gbk").encode("utf-8") #编码转换为utf-8
sql="insert into stocklist (stockno,stockname) values (%s,%s)" #生成sql语句
param=('600000',a) #生成sql语句的参数
n = cursor.execute(sql,param) #执行sql语句
#以上操作等价于n = cursor.execute("insert into stocklist (stockno,stockname) values ('430004','"+ "浦发银行".decode("gbk").encode("utf-8") + "')")
print n
conn.commit() #提交操作结果
#进行查询操作检查刚刚执行的插入操作结果
n = cursor.execute("select * from stocklist")
for row in cursor.fetchall():
 print row[0] + row[1]
cursor.close() #关闭指针
conn.close() #关闭连接

总结

以上所述是小编给大家介绍的Python MySQLdb 使用utf-8 编码插入中文数据问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
python在多玩图片上下载妹子图的实现代码
Aug 13 Python
Tornado服务器中绑定域名、虚拟主机的方法
Aug 22 Python
python下解压缩zip文件并删除文件的实例
Apr 24 Python
查看python下OpenCV版本的方法
Aug 03 Python
Django REST framework视图的用法
Jan 16 Python
Python 调用 Outlook 发送邮件过程解析
Aug 08 Python
Python socket实现的文件下载器功能示例
Nov 15 Python
django ajax发送post请求的两种方法
Jan 05 Python
Python开发企业微信机器人每天定时发消息实例
Mar 17 Python
Python爬取YY评级分数并保存数据实现过程解析
Jun 01 Python
jupyter notebook 写代码自动补全的实现
Nov 02 Python
python subprocess pipe 实时输出日志的操作
Dec 05 Python
python实现简易通讯录修改版
Mar 13 #Python
python学生信息管理系统
Mar 13 #Python
python时间日期函数与利用pandas进行时间序列处理详解
Mar 13 #Python
python用户管理系统
Mar 13 #Python
Windows环境下python环境安装使用图文教程
Mar 13 #Python
Python Numpy 数组的初始化和基本操作
Mar 13 #Python
python 中的list和array的不同之处及转换问题
Mar 13 #Python
You might like
php中通过虚代理实现延迟加载的实现代码
2011/06/10 PHP
php全角字符转换为半角函数
2014/02/07 PHP
PHP通过插入mysql数据来实现多机互锁实例
2014/11/05 PHP
php从身份证获取性别和出生年月
2017/02/09 PHP
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
2010/04/01 Javascript
jQuery Dialog 弹出层对话框插件
2010/08/09 Javascript
js和as的稳定传值问题解决
2013/07/14 Javascript
js写出遮罩层登陆框和对联广告并自动跟随滚动条滚动
2014/04/29 Javascript
jQuery+PHP打造滑动开关效果
2014/12/16 Javascript
JavaScript中字符串拼接的基本方法
2015/07/07 Javascript
JavaScript数组各种常见用法实例分析
2015/08/04 Javascript
Express的路由详解
2015/12/10 Javascript
vue.js的安装方法
2017/05/12 Javascript
jQuery实现简单的手风琴效果
2020/04/17 jQuery
微信小程序实现换肤功能
2018/03/14 Javascript
Vue中computed与methods的区别详解
2018/03/24 Javascript
解决echarts的多个折现数据出现坐标和值对不上的问题
2018/12/28 Javascript
[36:33]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第二场
2018/04/04 DOTA
Python的Django框架中settings文件的部署建议
2015/05/30 Python
Python逐行读取文件内容的方法总结
2020/02/14 Python
Python交互环境下打印和输入函数的实例内容
2020/02/16 Python
jupyter notebook清除输出方式
2020/04/10 Python
澳大利亚礼品篮网站:Macarthur Baskets
2019/10/14 全球购物
介绍一下Linux文件的记录形式
2012/04/18 面试题
个人简历自我评价范文
2014/02/04 职场文书
实习生评语
2014/04/26 职场文书
文明村镇申报材料
2014/05/06 职场文书
环境保护标语
2014/06/20 职场文书
开展党的群众路线教育实践活动工作总结
2014/11/05 职场文书
酒店仓管员岗位职责
2015/04/01 职场文书
电影开国大典观后感
2015/06/04 职场文书
大学军训心得体会800字
2016/01/11 职场文书
CSS3常见动画的实现方式
2021/04/14 HTML / CSS
教你用Java在个人电脑上实现微信扫码支付
2021/06/13 Java/Android
教你利用Nginx 服务搭建子域环境提升二维地图加载性能的步骤
2021/09/25 Servers
MySql分区类型及创建分区的方法
2022/04/13 MySQL