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自动安装pip
Apr 24 Python
Python Web框架Flask信号机制(signals)介绍
Jan 01 Python
Python实现截屏的函数
Jul 26 Python
Python中单例模式总结
Feb 20 Python
python3学生名片管理v2.0版
Nov 29 Python
Python http接口自动化测试框架实现方法示例
Dec 06 Python
pycharm 将python文件打包为exe格式的方法
Jan 16 Python
Python3 执行Linux Bash命令的方法
Jul 12 Python
python 并发编程 多路复用IO模型详解
Aug 20 Python
django ORM之values和annotate使用详解
May 19 Python
Python定义一个Actor任务
Jul 29 Python
pytorch训练神经网络爆内存的解决方案
May 22 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中看实例学正则表达式
2006/12/25 PHP
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
2014/05/12 PHP
静态的动态续篇之来点XML
2006/12/23 Javascript
支持ie与FireFox的剪切板操作代码
2009/09/28 Javascript
jQuery1.5.1 animate方法源码阅读
2011/04/05 Javascript
浅析Prototype的模板类 Template
2011/12/07 Javascript
jQuery cdn使用介绍
2013/05/08 Javascript
jQuery中:enabled选择器用法实例
2015/01/04 Javascript
举例讲解JavaScript substring()的使用方法
2015/11/09 Javascript
jQuery增加、删除及修改select option的方法
2016/08/19 Javascript
vue开发拖拽进度条滑动组件
2019/09/21 Javascript
layui清除radio的选中状态实例
2019/11/14 Javascript
[02:03]DOTA2亚洲邀请赛 HGT战队出场宣传片
2015/02/07 DOTA
浅谈django的render函数的参数问题
2018/10/16 Python
Python实现的拉格朗日插值法示例
2019/01/08 Python
Python线上环境使用日志的及配置文件
2019/07/28 Python
500行python代码实现飞机大战
2020/04/24 Python
在python中list作函数形参,防止被实参修改的实现方法
2020/06/05 Python
Python 常用日期处理 -- calendar 与 dateutil 模块的使用
2020/09/02 Python
python字典通过值反查键的实现(简洁写法)
2020/09/30 Python
HTML5的表单(绝对特别强大的功能)使用示例
2013/06/20 HTML / CSS
有关HTML5 Video对象的ontimeupdate事件(Chrome上无效)的问题
2013/07/19 HTML / CSS
HTML5之tabindex属性全面解析
2016/07/07 HTML / CSS
聪明的粉丝购买门票的地方:TickPick
2018/03/09 全球购物
Parfume Klik丹麦:香水网上商店
2018/07/10 全球购物
李维斯牛仔裤英国官方网站:Levi’s英国
2019/10/10 全球购物
英国最受信任的在线眼镜商之一:Fashion Eyewear
2019/10/31 全球购物
英国家居用品和床上用品零售商:P&B Home
2020/01/16 全球购物
学校七一活动方案
2014/01/19 职场文书
小加工厂管理制度
2014/01/21 职场文书
房屋买卖协议书
2014/04/10 职场文书
家长对学校的意见和建议
2015/06/03 职场文书
保姆聘用合同
2015/09/21 职场文书
2016国庆节67周年红领巾广播稿
2015/12/18 职场文书
Windows10下安装MySQL8
2021/04/06 MySQL
vue如何实现关闭对话框后刷新列表
2022/04/08 Vue.js