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多线程结合队列下载百度音乐的方法
Jul 27 Python
Python脚本实时处理log文件的方法
Nov 21 Python
python先序遍历二叉树问题
Nov 10 Python
对Python字符串中的换行符和制表符介绍
May 03 Python
Python+selenium实现自动循环扔QQ邮箱漂流瓶
May 29 Python
详解Python 协程的详细用法使用和例子
Jun 15 Python
django_orm查询性能优化方法
Aug 20 Python
Python打开文件,将list、numpy数组内容写入txt文件中的方法
Oct 26 Python
Python函数中参数是传递值还是引用详解
Jul 02 Python
wxPython实现画图板
Aug 27 Python
Python虚拟环境venv用法详解
May 25 Python
Python使用openpyxl批量处理数据
Jun 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
实现分十页分向前十页向后十页的处理
2006/10/09 PHP
PHP缓存技术的使用说明
2011/08/06 PHP
windows下PHP_intl.dll正确配置方法(apache2.2+php5.3.5)
2014/01/14 PHP
php过滤所有恶意字符(批量过滤post,get敏感数据)
2014/03/18 PHP
利用PHP绘图函数实现简单验证码功能的方法
2016/10/18 PHP
详解thinkphp5+swoole实现异步邮件群发(SMTP方式)
2017/10/13 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
让innerHTML的脚本也可以运行起来
2006/07/01 Javascript
如何快速的呈现我们的网页的技巧整理
2007/07/01 Javascript
javascript之bind使用介绍
2011/10/09 Javascript
简单谈谈javascript Date类型
2015/09/06 Javascript
全面解析Bootstrap表单使用方法(表单样式)
2015/11/24 Javascript
jQuery多级联动下拉插件chained用法示例
2016/08/20 Javascript
ES6新特性六:promise对象实例详解
2017/04/21 Javascript
Javascript实现基本运算器
2017/07/15 Javascript
React根据宽度自适应高度的示例代码
2017/10/11 Javascript
利用JS判断客户端类型你应该知道的四种方法
2017/12/22 Javascript
vue使用showdown并实现代码区域高亮的示例代码
2019/10/17 Javascript
Vue 嵌套路由使用总结(推荐)
2020/01/13 Javascript
[44:33]EG vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[14:19]2018年度COSER大赛-完美盛典
2018/12/16 DOTA
Python自动生产表情包
2017/03/17 Python
python中lambda()的用法
2017/11/16 Python
Python3.6通过自带的urllib通过get或post方法请求url的实例
2018/05/10 Python
python 字典中文key处理,读取,比较方法
2018/07/06 Python
Python迭代器模块itertools使用原理解析
2019/12/11 Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
2020/01/09 Python
python palywright库基本使用
2021/01/21 Python
python中spy++的使用超详细教程
2021/01/29 Python
Abbott Lyon官网:女士手表、珠宝及配件
2020/12/26 全球购物
学校门卫岗位职责
2014/03/16 职场文书
个人师德师风自我剖析材料
2014/09/29 职场文书
慰问信格式
2015/02/14 职场文书
医院员工辞职信范文
2015/05/12 职场文书
python 下划线的多种应用场景总结
2021/05/12 Python
java开发双人五子棋游戏
2022/05/06 Java/Android