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中__init__和__new__的区别详解
Jul 09 Python
python常见排序算法基础教程
Apr 13 Python
对pandas的dataframe绘图并保存的实现方法
Aug 05 Python
Python比较2个时间大小的实现方法
Apr 10 Python
python批量从es取数据的方法(文档数超过10000)
Dec 27 Python
Python批量生成特定尺寸图片及图画任意文字的实例
Jan 30 Python
Python对ElasticSearch获取数据及操作
Apr 24 Python
python实现微信自动回复机器人功能
Jul 11 Python
Python实现代码统计工具
Sep 19 Python
Django使用list对单个或者多个字段求values值实例
Mar 31 Python
解决python 执行shell命令无法获取返回值的问题
Dec 05 Python
七个非常实用的Python工具包总结
Jun 15 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 什么是PEAR?
2009/03/19 PHP
基于preg_match_all采集后数据处理的一点心得笔记(编码转换和正则匹配)
2014/01/31 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
Laravel框架实现的rbac权限管理操作示例
2019/01/16 PHP
javascript 动态table添加colspan\rowspan 参数的方法
2009/07/25 Javascript
如何在JavaScript中实现私有属性的写类方式(一)
2013/12/04 Javascript
[原创]推荐10款最热门jQuery UI框架
2014/08/19 Javascript
Eclipse配置Javascript开发环境图文教程
2015/01/29 Javascript
angularjs学习笔记之简单介绍
2015/09/26 Javascript
简单的JS时钟实例讲解
2016/01/13 Javascript
Jquery实现$.fn.extend和$.extend函数
2016/04/14 Javascript
Bootstrap前端开发案例一
2016/06/17 Javascript
Bootstrap CSS布局之按钮
2016/12/17 Javascript
微信小程序 详解页面跳转与返回并回传数据
2017/02/13 Javascript
React+Antd+Redux实现待办事件的方法
2019/03/14 Javascript
elementUI select组件value值注意事项详解
2019/05/29 Javascript
Koa从零搭建到Api实现项目的搭建方法
2019/07/30 Javascript
vue本地打开build后生成的dist文件夹index.html问题
2019/09/04 Javascript
webpack 如何解析代码模块路径的实现
2019/09/04 Javascript
js实现批量删除功能
2020/08/27 Javascript
原生微信小程序开发中 redux 的使用详解
2021/02/18 Javascript
[04:51]TI10典藏宝瓶Ⅱ外观视频展示
2020/08/15 DOTA
Python操作SQLite数据库的方法详解【导入,创建,游标,增删改查等】
2017/07/11 Python
Python 获得13位unix时间戳的方法
2017/10/20 Python
pandas多级分组实现排序的方法
2018/04/20 Python
Python提取PDF内容的方法(文本、图像、线条等)
2019/09/25 Python
Windows环境下Python3.6.8 importError: DLLload failed:找不到指定的模块
2020/11/01 Python
Python高并发和多线程有什么关系
2020/11/14 Python
使用CSS变量实现炫酷惊人的悬浮效果
2019/04/26 HTML / CSS
德国综合购物网站:OTTO
2018/11/13 全球购物
教师年终个人自我评价
2013/10/04 职场文书
清正廉洁演讲稿
2014/05/22 职场文书
2014年维修电工工作总结
2014/11/20 职场文书
工会积极分子个人总结
2015/03/03 职场文书
python获取对象信息的实例详解
2021/07/07 Python
你知道Java Spring的两种事务吗
2022/03/16 Java/Android