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 相关文章推荐
Python3基础之基本运算符概述
Aug 13 Python
初步探究Python程序的执行原理
Apr 11 Python
python脚本内运行linux命令的方法
Jul 02 Python
解决Python print 输出文本显示 gbk 编码错误问题
Jul 13 Python
pycharm在调试python时执行其他语句的方法
Nov 29 Python
详解Python网络框架Django和Scrapy安装指南
Apr 01 Python
python接口调用已训练好的caffe模型测试分类方法
Aug 26 Python
Python OpenCV视频截取并保存实现代码
Nov 30 Python
python-视频分帧&多帧合成视频实例
Dec 10 Python
使用anaconda安装pytorch的实现步骤
Sep 03 Python
python Cartopy的基础使用详解
Nov 01 Python
使用pytorch实现线性回归
Apr 11 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 不错的学习资料
2009/02/06 PHP
php设计模式 Decorator(装饰模式)
2011/06/26 PHP
php header功能的使用
2013/10/28 PHP
javascript 模式设计之工厂模式详细说明
2010/05/10 Javascript
浅谈Javascript鼠标和滚轮事件
2012/06/27 Javascript
cookie 最近浏览记录(中文escape转码)具体实现
2013/06/08 Javascript
Javascript合并表格中具有相同内容单元格示例
2013/08/11 Javascript
jquery ajax post提交数据乱码
2013/11/05 Javascript
js 事件截取enter按键页面提交事件示例代码
2014/03/04 Javascript
javascript处理a标签超链接默认事件的方法
2015/06/29 Javascript
JavaScript如何获取数组最大值和最小值
2015/11/18 Javascript
Bootstrap布局方式详解
2016/05/27 Javascript
微信小程序 省市区选择器实例详解(附源码下载)
2017/01/05 Javascript
js实现无缝滚动图(可控制当前滚动的方向)
2017/02/22 Javascript
利用jquery正则表达式在页面验证url网址输入是否正确
2017/04/04 jQuery
使用JS判断页面是首次被加载还是刷新
2019/05/26 Javascript
小程序api实现promise封装过程解析
2019/11/21 Javascript
vue中解决拖拽改变存在iframe的div大小时卡顿问题
2020/07/22 Javascript
[01:00:52]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第一场
2018/04/05 DOTA
使用IPython下的Net-SNMP来管理类UNIX系统的教程
2015/04/15 Python
Python实现动态加载模块、类、函数的方法分析
2017/07/18 Python
Python实现合并两个列表的方法分析
2018/05/28 Python
5款Python程序员高频使用开发工具推荐
2019/04/10 Python
使用WingPro 7 设置Python路径的方法
2019/07/24 Python
python eventlet绿化和patch原理
2020/11/21 Python
详解html5页面 rem 布局适配方法
2018/01/12 HTML / CSS
印度尼西亚电子产品购物网站:Kliknklik
2018/06/05 全球购物
德国最新街头服饰网上商店:BODYCHECK
2019/09/15 全球购物
常用UNIX 命令(Linux的常用命令)
2013/07/10 面试题
超市促销活动方案
2014/03/05 职场文书
群众路线党课主持词
2014/04/01 职场文书
文员试用期转正自我鉴定
2014/09/14 职场文书
小学优秀学生评语
2014/12/29 职场文书
2015年检验员工作总结范文
2015/04/30 职场文书
在职证明书模板
2015/06/15 职场文书
详解Spring Security中的HttpBasic登录验证模式
2022/03/17 Java/Android