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处理中文编码和判断编码示例
Feb 26 Python
Linux下用Python脚本监控目录变化代码分享
May 21 Python
python解析xml文件实例分析
May 27 Python
python中OrderedDict的使用方法详解
May 05 Python
浅谈numpy库的常用基本操作方法
Jan 09 Python
Python交互环境下实现输入代码
Jun 22 Python
python numpy数组的索引和切片的操作方法
Oct 20 Python
Python中栈、队列与优先级队列的实现方法
Jun 30 Python
详解Django 时间与时区设置问题
Jul 23 Python
Python3标准库之dbm UNIX键-值数据库问题
Mar 24 Python
基于Python和C++实现删除链表的节点
Jul 06 Python
python中%格式表达式实例用法
Jun 18 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/10/09 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
2011/07/03 PHP
使用php记录用户通过搜索引擎进网站的关键词
2014/02/13 PHP
PHP生成指定长度随机数最简洁的方法
2014/07/14 PHP
使用array_map简单搞定PHP删除文件、删除目录
2014/10/29 PHP
java模拟PHP的pack和unpack类
2016/04/13 PHP
laravel-admin select框默认选中的方法
2019/10/03 PHP
如何在Mozilla Gecko 用Javascript加载XSL
2007/01/09 Javascript
nicejforms——美化表单不用愁
2007/02/20 Javascript
js left,right,mid函数
2008/06/10 Javascript
javascript 语法基础 想学习js的朋友可以看看
2009/12/16 Javascript
jquery动态改变onclick属性导致失效的问题解决方法
2013/12/04 Javascript
jQuery操作CheckBox的方法介绍(选中,取消,取值)
2014/02/04 Javascript
JavaScript中对象property的删除方法介绍
2014/12/30 Javascript
常用jQuery代码分享
2015/07/14 Javascript
JavaScript实现按键精灵的原理分析
2017/02/21 Javascript
谈谈JS中的!!
2017/12/07 Javascript
JS实现的3des+base64加密解密算法完整示例
2018/05/18 Javascript
详解如何更好的使用module vuex
2019/03/27 Javascript
layui表格内放置图片,并点击放大的实例
2019/09/10 Javascript
解决$store.getters调用不执行的问题
2019/11/08 Javascript
微信小程序复选框实现多选一功能过程解析
2020/02/14 Javascript
Node.js API详解之 module模块用法实例分析
2020/05/13 Javascript
[00:12]2018DOTA2亚洲邀请赛 Sccc亮相SOLO赛,今年他又会有什么样的战绩?
2018/04/06 DOTA
python中list循环语句用法实例
2014/11/10 Python
详解python中的json的基本使用方法
2016/12/21 Python
Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】
2018/12/05 Python
对python实现模板生成脚本的方法详解
2019/01/30 Python
django框架CSRF防护原理与用法分析
2019/07/22 Python
Django restframework 框架认证、权限、限流用法示例
2019/12/21 Python
html5 Canvas绘制线条 closePath()实例代码
2012/05/10 HTML / CSS
计算机求职信
2013/12/01 职场文书
管理部部长岗位职责
2013/12/05 职场文书
劳资专员岗位职责
2013/12/27 职场文书
先进集体申报材料
2014/12/25 职场文书
Mysql如何查看是否使用到索引
2022/12/24 MySQL