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多线程编程中的join函数使用心得
Sep 02 Python
python删除列表内容
Aug 04 Python
python使用paramiko实现远程拷贝文件的方法
Apr 18 Python
python简单图片操作:打开\显示\保存图像方法介绍
Nov 23 Python
一个Python最简单的接口自动化框架
Jan 02 Python
Django 使用easy_thumbnails压缩上传的图片方法
Jul 26 Python
一行Python代码过滤标点符号等特殊字符
Aug 12 Python
Python如何计算语句执行时间
Nov 22 Python
使用pygame写一个古诗词填空通关游戏
Dec 03 Python
Pytorch提取模型特征向量保存至csv的例子
Jan 03 Python
Python闭包及装饰器运行原理解析
Jun 17 Python
Python编写nmap扫描工具
Jul 21 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+xslt在windows平台上
2006/10/09 PHP
PHP为表单获取的URL 地址预设 http 字符串函数代码
2010/05/26 PHP
巧用php中的array_filter()函数去掉多维空值的代码分享
2012/09/07 PHP
IIS安装Apache伪静态插件的具体操作图文
2013/07/01 PHP
php微信公众号开发之校园图书馆
2018/10/20 PHP
php实现断点续传大文件示例代码
2020/06/19 PHP
phpstudy隐藏index.php的方法
2020/09/21 PHP
JavaScript高级程序设计(第3版)学习笔记12 js正则表达式
2012/10/11 Javascript
Three.js源码阅读笔记(光照部分)
2012/12/27 Javascript
javascript对中文按照拼音排序代码
2014/08/20 Javascript
javascript实现的一个随机点名功能
2014/08/26 Javascript
JQuery 两种方法解决刚创建的元素遍历不到的问题
2016/04/13 Javascript
js实现下拉菜单效果
2017/03/01 Javascript
详解Vue使用 vue-cli 搭建项目
2017/04/20 Javascript
Vue官网todoMVC示例代码
2018/01/29 Javascript
vue.js将时间戳转化为日期格式的实现代码
2018/06/05 Javascript
JavaScript类数组对象转换为数组对象的方法实例分析
2018/07/24 Javascript
详解html-webpack-plugin插件(用法总结)
2018/09/12 Javascript
部署vue+Springboot前后端分离项目的步骤实现
2020/05/31 Javascript
归纳整理Python中的控制流语句的知识点
2015/04/14 Python
Python学习小技巧之利用字典的默认行为
2017/05/20 Python
python十进制和二进制的转换方法(含浮点数)
2018/07/07 Python
利用Python模拟登录pastebin.com的实现方法
2019/07/12 Python
python+numpy实现的基本矩阵操作示例
2019/07/19 Python
关于python导入模块import与常见的模块详解
2019/08/28 Python
python用线性回归预测股票价格的实现代码
2019/09/04 Python
CK加拿大官网:Calvin Klein加拿大
2020/03/14 全球购物
精伦电子Java笔试题
2013/01/16 面试题
Linux的主要特性
2016/09/03 面试题
英文自荐信
2013/12/15 职场文书
医药个人求职信范文
2014/01/29 职场文书
古汉语文学求职信范文
2014/03/16 职场文书
股东协议书
2014/04/14 职场文书
酒店开业主持词
2015/07/02 职场文书
教师培训简讯
2015/07/20 职场文书
患者身份识别制度
2015/08/06 职场文书