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抓取网页正文的源码
Jun 11 Python
在Python的Django框架中获取单个对象数据的简单方法
Jul 17 Python
Python使用smtplib模块发送电子邮件的流程详解
Jun 27 Python
解决PyCharm的Python.exe已经停止工作的问题
Nov 29 Python
Python字典的核心底层原理讲解
Jan 24 Python
python二元表达式用法
Dec 04 Python
python基于event实现线程间通信控制
Jan 13 Python
pytorch实现mnist数据集的图像可视化及保存
Jan 14 Python
python 连续不等式语法糖实例
Apr 15 Python
Python 防止死锁的方法
Jul 29 Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
Sep 29 Python
如何用 Python 制作 GitHub 消息助手
Feb 20 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中检查文件或目录是否存在的代码小结
2012/10/22 PHP
php使用异或实现的加密解密实例
2013/09/04 PHP
php实现的获取网站备案信息查询代码(360)
2013/09/23 PHP
PHP中常用的魔术方法
2017/04/28 PHP
layui框架实现文件上传及TP3.2.3(thinkPHP)对上传文件进行后台处理操作示例
2018/05/12 PHP
用php定义一个数组最简单的方法
2019/10/04 PHP
Yii框架自定义数据库操作组件示例
2019/11/11 PHP
基于jquery的$.ajax async使用
2011/10/19 Javascript
Node.js中使用计时器定时执行函数详解
2014/08/15 Javascript
JQuery中attr方法和removeAttr方法用法实例
2015/05/18 Javascript
解析javascript瀑布流原理实现图片滚动加载
2016/03/10 Javascript
详解Bootstrap插件
2016/04/25 Javascript
Angularjs中date过滤器失效的问题及解决方法
2018/07/06 Javascript
vue实现的树形结构加多选框示例
2019/02/02 Javascript
vue自定义指令实现方法详解
2019/02/11 Javascript
记一次Vue.js混入mixin的使用(分权限管理页面)
2019/04/17 Javascript
vue.js基于v-for实现批量渲染 Json数组对象列表数据示例
2019/08/03 Javascript
vue.js+ElementUI实现进度条提示密码强度效果
2020/01/18 Javascript
vue style width a href动态拼接问题的解决
2020/08/07 Javascript
Python实现Smtplib发送带有各种附件的邮件实例
2017/06/05 Python
python 以16进制打印输出的方法
2018/07/09 Python
Python内存读写操作示例
2018/07/18 Python
几行Python代码爬取3000+上市公司的信息
2019/01/24 Python
python爬虫 2019中国好声音评论爬取过程解析
2019/08/26 Python
python3常用的数据清洗方法(小结)
2019/10/31 Python
Python getsizeof()和getsize()区分详解
2020/11/20 Python
一款纯css3实现的颜色渐变按钮的代码教程
2014/11/12 HTML / CSS
HTML5地理定位与第三方工具百度地图的应用
2016/11/17 HTML / CSS
html5如何及时更新缓存文件(js、css或图片)
2013/06/24 HTML / CSS
美的官方商城:Midea
2016/09/14 全球购物
老板电器官方购物商城:老板油烟机、燃气灶、消毒柜、电烤箱
2018/05/30 全球购物
党的群众路线批评与自我批评范文
2014/10/16 职场文书
2014年财务部工作总结
2014/11/11 职场文书
大学生心理健康活动总结
2015/05/08 职场文书
JavaScript如何优化逻辑判断代码详解
2021/06/08 Javascript
关于python中readlines函数的参数hint的相关知识总结
2021/06/24 Python