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 错误和异常小结
Oct 09 Python
Django框架下在视图中使用模版的方法
Jul 16 Python
浅析Python中yield关键词的作用与用法
Nov 29 Python
win与linux系统中python requests 安装
Dec 04 Python
python 简单搭建阻塞式单进程,多进程,多线程服务的实例
Nov 01 Python
Python实现的寻找前5个默尼森数算法示例
Mar 25 Python
Django中使用极验Geetest滑动验证码过程解析
Jul 31 Python
Pytorch中.new()的作用详解
Feb 18 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
Jul 02 Python
Python基于staticmethod装饰器标示静态方法
Oct 17 Python
Python如何使用ConfigParser读取配置文件
Nov 12 Python
python中使用.py配置文件的方法详解
Nov 23 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危险函数(disable_functions)
2012/02/23 PHP
PHP 观察者模式的实现代码
2013/05/10 PHP
JavaScript中的Window窗口对象
2008/01/16 Javascript
jquery1.5.1中根据元素ID获取元素对象的代码
2011/04/02 Javascript
js中页面的重新加载(当前页面/上级页面)及frame或iframe元素引用介绍
2013/01/24 Javascript
JQuery 操作/获取table具体代码
2013/06/13 Javascript
jQuery实现鼠标经过图片预览大图效果
2014/04/10 Javascript
javascript十六进制及二进制转化的方法
2015/05/06 Javascript
JavaScript实现鼠标滑过处生成气泡的方法
2015/05/16 Javascript
最全面的JS倒计时代码
2016/09/17 Javascript
Form表单按回车自动提交表单的实现方法
2016/11/18 Javascript
微信小程序 picker 组件详解及简单实例
2017/01/10 Javascript
jQuery使用DataTable实现删除数据后重新加载功能
2017/02/27 Javascript
微信小程序tabBar底部导航中文注解api详解
2017/08/16 Javascript
ES6 系列之 WeakMap的使用示例
2018/08/06 Javascript
jquery 动态遍历select 赋值的实例
2018/09/12 jQuery
webpack4打包vue前端多页面项目
2018/09/17 Javascript
JS Array.from()将伪数组转换成数组的方法示例
2020/03/23 Javascript
pymssql ntext字段调用问题解决方法
2008/12/17 Python
python3.3实现乘法表示例
2014/02/07 Python
Python的Tornado框架实现图片上传及图片大小修改功能
2016/06/30 Python
Python基于numpy灵活定义神经网络结构的方法
2017/08/19 Python
Python过滤txt文件内重复内容的方法
2018/10/21 Python
基于Python在MacOS上安装robotframework-ride
2018/12/28 Python
Python Django框架实现应用添加logging日志操作示例
2019/05/17 Python
在django项目中导出数据到excel文件并实现下载的功能
2020/03/13 Python
面向新手解析python Beautiful Soup基本用法
2020/07/11 Python
英国123鲜花网站:123 Flowers
2019/07/07 全球购物
采购主管的岗位职责
2013/12/17 职场文书
新三好学生主要事迹
2014/01/23 职场文书
校园安全广播稿
2014/02/08 职场文书
个人租房协议书
2014/04/09 职场文书
职位说明书范文
2014/05/07 职场文书
社会实践活动总结
2015/02/05 职场文书
事业单位个人总结
2015/02/12 职场文书
利用python做表格数据处理
2021/04/13 Python