mysql录入foreigen错误_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 MySQLdb 使用utf-8 编码插入中文数据问题
本文地址: http://www.cppcns.com/jiaoben/python/222429.html
mysql录入foreigen错误_Python MySQLdb 使用utf-8 编码插入中文数据问题相关推荐
- mysql录入foreigen错误_编译安装MySQL5.6失败的相关问题解决方案
Q0:需要安装git 解决方案: #CentOS yum install git #ubuntu apt-get install git Q1:CMAKE_CXX_COMPILER could be ...
- python 向MySQL里插入中文数据
用python向MySQL中插入中文数据出错,原代码片段: 1 db = MySQLdb.connect("localhost","root","12 ...
- MySQL插入中文数据时报错:Incorrect string value: ‘\xC8\xFD\xCC\xE5‘ 解决方案
最近在使用MySQL数据库的客户端来操作数据库的时候,我直接打开我电脑搜索里面的MySQL客户端来打开: 结果直接在我插入中文数据的时候报错了: Incorrect string value: '\x ...
- mysql中插入中文数据
今天遇到的问题使mysql中插入中文数据后显示乱码,我在mysql中插入中文的时候,可以插入可是select的时候却无法显示,为此我写下这篇博客用于解决mysql插入中文. 由于有些截图没有记录下来, ...
- 解决mysql客户端执行插入中文数据命令出错以及中文乱码问题
时间:2019年8月16号 星期五 22:40 建表语句和插入数据语句如下: create table account(id int primary key auto_increment,name v ...
- mysql输入中文出现 号_MySQL插入中文数据出现?号
运行环境:win10 mysql版本:Mysql5.6 做一个项目的时候,向数据库插入中文数据,一直都是? 问过度娘之后,她提供的以下办法: 1.在连接数据库的url后加:?useUnicode=tr ...
- mysql插入数据中文_mysql插入中文数据的方法
mysql插入中文数据的方法 发布时间:2020-09-04 09:26:29 来源:亿速云 阅读:92 作者:小新 小编给大家分享一下mysql插入中文数据的方法,相信大部分人都还不怎么了解,因此分 ...
- MYSQL使用存储过程插入中文数据的疑似bug(UTF8)
数据库Connection和字段的字符集都采用utf-8. 开始使用存储过程插入数据,代码大约如下 MySqlCommand cmd = new MySqlCommand("apend_te ...
- 命令行输入mysql不行_MySQL命令行无法插入中文数据
下面的方法是针对window系统的 注意: 1 下面的my.ini文件在有些版本的Mysql中的安装目录找不到,比如我用的版本5.5.60-log就找不到,想要找到这个文件,需要设置显示window ...
最新文章
- 阿里团队最新实践:如何解决大规模分类问题?
- dubbo内置哪几种服务容器_dubbo启动服务之容器(Container)
- 统计学习方法第十四章作业:聚类—层次聚类聚合/分裂算法、K_means聚类算法 代码实现
- [ZOJ 3203] 灯泡
- oracle数据库常用的语法与复合函数
- ping 不是内部或外部命令,也不是可运行的程序 或批处理文件。的解决办法
- 如何使用JavaScript控制台:超越console.log()
- Python 学习笔记9(装饰器,decorator)
- 最好用的虚拟机软件----VMware详细图文教程
- 3-3-ServletContext接口
- python处理期货数据_用Python下载并分析期货持仓数据
- Liunx官网下载步骤
- spring boot通用办事流程管理软件 毕业设计-附源码211819
- 开关电源的开关管一般用MOS管而不是三极管原因
- 容器云平台No.10~通过gogs+drone+kubernetes实现CI/CD
- Switch NS 通过华硕梅林路由DNSMASQ屏蔽任天堂服务器
- 从零开始学前端 - 16. JS对象Object介绍及常用方法
- hdu 5238 Calculator(线段树+中国剩余定理)
- Hadoop常备知识点
- PHPCMS短信接口替换
热门文章
- java易语言_java程序员,0基础学习开发易语言。
- 堆排序(C\C++)
- React中使用setState
- boostrap 鼠标滚轮滑动图片_Bootstrap幻灯片轮播图支持触屏左右手势滑动的实现方法...
- 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第1节 异常_8_Throwable类中3个异常处理的方法...
- 操作系统(五)CPU调度
- Spring命名空间引入方法
- Linux 终端部分重要快捷键
- delphi 16 网页缩放
- 我泡在GitHub上的177天 by Ryan Seys