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调用shell的方法
Nov 20 Python
python从sqlite读取并显示数据的方法
May 08 Python
利用python3随机生成中文字符的实现方法
Nov 24 Python
Python中的默认参数实例分析
Jan 29 Python
python保存字典和读取字典的实例代码
Jul 07 Python
Python django搭建layui提交表单,表格,图标的实例
Nov 18 Python
python 中的paramiko模块简介及安装过程
Feb 29 Python
keras 读取多标签图像数据方式
Jun 12 Python
怎么快速自学python
Jun 22 Python
Python-openpyxl表格读取写入的案例详解
Nov 02 Python
matplotlib相关系统目录获取方式小结
Feb 03 Python
Python OpenGL基本配置方式
May 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实现文件下载简单示例(代码实现文件下载)
2014/03/10 PHP
php+mysql实现简单登录注册修改密码网页
2016/11/30 PHP
js 省地市级联选择
2010/02/07 Javascript
js中top/parent/frame概述及案例应用
2013/02/06 Javascript
判断ie的两种简单方法
2013/08/12 Javascript
js算法中的排序、数组去重详细概述
2013/10/14 Javascript
js监听鼠标事件控制textarea输入字符串的个数
2014/09/29 Javascript
JavaScript中Cookie操作实例
2015/01/09 Javascript
原生javascript实现图片弹窗交互效果
2015/01/12 Javascript
JavaScript学习笔记整理_用于模式匹配的String方法
2016/09/19 Javascript
利用node.js实现反向代理的方法详解
2017/07/24 Javascript
jQuery+vue.js实现的九宫格拼图游戏完整实例【附源码下载】
2017/09/12 jQuery
详解如何用模块化的方式写vuejs
2017/12/16 Javascript
详解redux异步操作实践
2018/08/15 Javascript
如何将HTML字符转换为DOM节点并动态添加到文档中详解
2018/08/19 Javascript
解决iview多表头动态更改列元素发生的错误的方法
2018/11/02 Javascript
js实现搜索栏效果
2018/11/16 Javascript
vue自定义指令的创建和使用方法实例分析
2018/12/04 Javascript
前端路由&webpack基础配置详解
2019/06/10 Javascript
判断网页编码的方法python版
2016/08/12 Python
windows及linux环境下永久修改pip镜像源的方法
2016/11/28 Python
Odoo中如何生成唯一不重复的序列号详解
2018/02/10 Python
Python装饰器原理与简单用法实例分析
2018/04/29 Python
Python 文本文件内容批量抽取实例
2018/12/10 Python
django如何通过类视图使用装饰器
2019/07/24 Python
详解一种用django_cache实现分布式锁的方式
2019/09/01 Python
Virtualenv 搭建 Py项目运行环境的教程详解
2020/06/22 Python
详解scrapy内置中间件的顺序
2020/09/28 Python
如何基于Python和Flask编写Prometheus监控
2020/11/25 Python
一款基于css3的动画按钮代码教程
2014/11/23 HTML / CSS
使用canvas对多图片拼合并导出图片的方法
2018/08/28 HTML / CSS
林清轩官方网站:山茶花润肤油开创者
2016/10/26 全球购物
移动通信行业实习自我鉴定
2013/09/28 职场文书
超市国庆节促销方案
2014/02/20 职场文书
单位租房协议书样本
2014/10/30 职场文书
雄兵连:第三季先行图公开,天使恶魔联合,银河之力的新力量
2021/06/11 国漫