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 30 Python
python学习之matplotlib绘制散点图实例
Dec 09 Python
python买卖股票的最佳时机(基于贪心/蛮力算法)
Jul 05 Python
Flask教程之重定向与错误处理实例分析
Aug 01 Python
Python实现PyPDF2处理PDF文件的方法示例
Sep 25 Python
pygame实现非图片按钮效果
Oct 29 Python
python找出列表中大于某个阈值的数据段示例
Nov 24 Python
Python关于反射的实例代码分享
Feb 20 Python
浅谈python累加求和+奇偶数求和_break_continue
Feb 25 Python
python+selenium+chromedriver实现爬虫示例代码
Apr 10 Python
Python爬虫requests库多种用法实例
May 28 Python
基于python实现百度语音识别和图灵对话
Nov 02 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
欧美媒体选出10年前最流行的17部动画
2017/01/18 日漫
开发大型PHP项目的方法
2006/10/09 PHP
PHP中文URL编解码(urlencode()rawurlencode()
2010/07/03 PHP
PHP Directory 函数的详解
2013/03/07 PHP
Docker配置PHP开发环境教程
2016/12/21 PHP
laravel框架中控制器的创建和使用方法分析
2019/11/23 PHP
使用javascript获取页面名称
2014/12/23 Javascript
JS控制鼠标拒绝点击某一按钮的实例
2017/12/29 Javascript
ng-repeat指令在迭代对象时的去重方法
2018/10/02 Javascript
微信小程序实现动态获取元素宽高的方法分析
2018/12/10 Javascript
js取小数点后两位四种方法
2019/01/18 Javascript
vue ssr服务端渲染(小白解惑)
2019/11/10 Javascript
vue移动端使用appClound拉起支付宝支付的实现方法
2019/11/21 Javascript
Python扩展内置类型详解
2018/03/26 Python
图解Python变量与赋值
2018/04/03 Python
python读取xlsx的方法
2018/12/25 Python
python网络爬虫 Scrapy中selenium用法详解
2019/09/28 Python
谈一谈数组拼接tf.concat()和np.concatenate()的区别
2020/02/07 Python
python解析xml文件方式(解析、更新、写入)
2020/03/05 Python
python实现梯度下降和逻辑回归
2020/03/24 Python
Python日志器使用方法及原理解析
2020/09/27 Python
CSS3的新特性介绍
2008/10/31 HTML / CSS
html5/css3响应式页面开发总结
2018/10/16 HTML / CSS
英国假发网站:Hothair
2018/02/23 全球购物
奥地利体育网上商店:Gigasport
2019/10/09 全球购物
迪卡侬印尼体育用品商店:Decathlon印尼
2020/03/11 全球购物
说一下mysql, oracle等常见数据库的分页实现方案
2012/09/29 面试题
机电工程专业应届生求职信
2013/10/03 职场文书
商务英语本科生的自我评价分享
2013/11/15 职场文书
关于赌博的检讨书
2014/01/24 职场文书
小学语文业务学习材料
2014/06/02 职场文书
环保标语大全
2014/06/12 职场文书
大学生第一学年自我鉴定
2014/09/12 职场文书
领导干部作风建设自查报告
2014/10/23 职场文书
2015年卫生局工作总结
2015/07/24 职场文书
css3 文字断裂效果
2022/04/22 HTML / CSS