最近帮伙计做了一个从网页抓取股票信息并把相应信息存入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 MySQLdb 使用utf-8 编码插入中文数据问题

本文地址: http://www.cppcns.com/jiaoben/python/222429.html

mysql录入foreigen错误_Python MySQLdb 使用utf-8 编码插入中文数据问题相关推荐

  1. mysql录入foreigen错误_编译安装MySQL5.6失败的相关问题解决方案

    Q0:需要安装git 解决方案: #CentOS yum install git #ubuntu apt-get install git Q1:CMAKE_CXX_COMPILER could be ...

  2. python 向MySQL里插入中文数据

    用python向MySQL中插入中文数据出错,原代码片段: 1 db = MySQLdb.connect("localhost","root","12 ...

  3. MySQL插入中文数据时报错:Incorrect string value: ‘\xC8\xFD\xCC\xE5‘ 解决方案

    最近在使用MySQL数据库的客户端来操作数据库的时候,我直接打开我电脑搜索里面的MySQL客户端来打开: 结果直接在我插入中文数据的时候报错了: Incorrect string value: '\x ...

  4. mysql中插入中文数据

    今天遇到的问题使mysql中插入中文数据后显示乱码,我在mysql中插入中文的时候,可以插入可是select的时候却无法显示,为此我写下这篇博客用于解决mysql插入中文. 由于有些截图没有记录下来, ...

  5. 解决mysql客户端执行插入中文数据命令出错以及中文乱码问题

    时间:2019年8月16号 星期五 22:40 建表语句和插入数据语句如下: create table account(id int primary key auto_increment,name v ...

  6. mysql输入中文出现 号_MySQL插入中文数据出现?号

    运行环境:win10 mysql版本:Mysql5.6 做一个项目的时候,向数据库插入中文数据,一直都是? 问过度娘之后,她提供的以下办法: 1.在连接数据库的url后加:?useUnicode=tr ...

  7. mysql插入数据中文_mysql插入中文数据的方法

    mysql插入中文数据的方法 发布时间:2020-09-04 09:26:29 来源:亿速云 阅读:92 作者:小新 小编给大家分享一下mysql插入中文数据的方法,相信大部分人都还不怎么了解,因此分 ...

  8. MYSQL使用存储过程插入中文数据的疑似bug(UTF8)

    数据库Connection和字段的字符集都采用utf-8. 开始使用存储过程插入数据,代码大约如下 MySqlCommand cmd = new MySqlCommand("apend_te ...

  9. 命令行输入mysql不行_MySQL命令行无法插入中文数据

    下面的方法是针对window系统的 注意: 1  下面的my.ini文件在有些版本的Mysql中的安装目录找不到,比如我用的版本5.5.60-log就找不到,想要找到这个文件,需要设置显示window ...

最新文章

  1. 阿里团队最新实践:如何解决大规模分类问题?
  2. dubbo内置哪几种服务容器_dubbo启动服务之容器(Container)
  3. 统计学习方法第十四章作业:聚类—层次聚类聚合/分裂算法、K_means聚类算法 代码实现
  4. [ZOJ 3203] 灯泡
  5. oracle数据库常用的语法与复合函数
  6. ping 不是内部或外部命令,也不是可运行的程序 或批处理文件。的解决办法
  7. 如何使用JavaScript控制台:超越console.log()
  8. Python 学习笔记9(装饰器,decorator)
  9. 最好用的虚拟机软件----VMware详细图文教程
  10. 3-3-ServletContext接口
  11. python处理期货数据_用Python下载并分析期货持仓数据
  12. Liunx官网下载步骤
  13. spring boot通用办事流程管理软件 毕业设计-附源码211819
  14. 开关电源的开关管一般用MOS管而不是三极管原因
  15. 容器云平台No.10~通过gogs+drone+kubernetes实现CI/CD
  16. Switch NS 通过华硕梅林路由DNSMASQ屏蔽任天堂服务器
  17. 从零开始学前端 - 16. JS对象Object介绍及常用方法
  18. hdu 5238 Calculator(线段树+中国剩余定理)
  19. Hadoop常备知识点
  20. PHPCMS短信接口替换

热门文章

  1. java易语言_java程序员,0基础学习开发易语言。
  2. 堆排序(C\C++)
  3. React中使用setState
  4. boostrap 鼠标滚轮滑动图片_Bootstrap幻灯片轮播图支持触屏左右手势滑动的实现方法...
  5. 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第1节 异常_8_Throwable类中3个异常处理的方法...
  6. 操作系统(五)CPU调度
  7. Spring命名空间引入方法
  8. Linux 终端部分重要快捷键
  9. delphi 16 网页缩放
  10. 我泡在GitHub上的177天 by Ryan Seys