Python MySQLdb 使用utf-8 编码插入中文数据问题

 更新时间:2018年03月13日 11:58:11   作者:dkman803  
这篇文章主要介绍了Python MySQLdb 使用utf-8 编码插入中文数据问题,需要的朋友可以参考下

最近帮伙计做了一个从网页抓取股票信息并把相应信息存入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实现标记数组的连通域

    这篇文章主要为大家详细介绍了如何通过Python实现标记数组的连通域,文中的示例代码讲解详细,对我们学习Python有一定的帮助,需要的可以参考一下
    2023-04-04
  • Pytest allure 命令行参数的使用

    Pytest allure 命令行参数的使用

    这篇文章主要介绍了Pytest allure 命令行参数的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • python 实现调用子文件下的模块方法

    python 实现调用子文件下的模块方法

    今天小编就为大家分享一篇python 实现调用子文件下的模块方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python实现包含min函数的栈

    Python实现包含min函数的栈

    这篇文章主要介绍了Python实现包含min函数的栈,可实现栈中元素的计算及进栈出栈等操作,需要的朋友可以参考下
    2016-04-04
  • python二叉树常用算法总结

    python二叉树常用算法总结

    这篇文章主要分享的是python二叉树常用算法,二叉树的递归思想很重要,还有递归的复杂度分析,需下面文章就来详细解说该算法,要的朋友可以参考一下
    2021-09-09
  • python字符串替换re.sub()方法解析

    python字符串替换re.sub()方法解析

    这篇文章主要介绍了python字符串替换re.sub()方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • Python解释器以及PyCharm的安装教程图文详解

    Python解释器以及PyCharm的安装教程图文详解

    PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。这篇文章主要介绍了Python解释器以及PyCharm的安装教程图文详解,需要的朋友可以参考下
    2020-02-02
  • 使用python实现excel的Vlookup功能

    使用python实现excel的Vlookup功能

    这篇文章主要介绍了使用python实现excel的Vlookup功能,当我们想要查找的数据量较大时,这时则有请我们的主角VLookup函数出场,那么如何用python实现VLookup呢,需要的朋友可以参考下
    2023-04-04
  • python 创建弹出式菜单的实现代码

    python 创建弹出式菜单的实现代码

    这篇文章主要介绍了python 创建弹出式菜单的实现代码的相关资料,需要的朋友可以参考下
    2017-07-07
  • 通过Python使用saltstack生成服务器资产清单

    通过Python使用saltstack生成服务器资产清单

    人工去对每一台服务器的硬件信息并记录早已经过去了,无论通过脚本还是自动化工具都是可以进行一次编写到处抓取的,本文主要使用saltstack作为使用工具,然后利用其提供的APi编写所需的Python脚本
    2016-03-03

最新评论