位置: 编程技术 - 正文
推荐整理分享Python连接MySQL并使用fetchall()方法过滤特殊字符,希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!
来一个简单的例子,看Python如何操作数据库,相比Java的JDBC来说,确实非常简单,省去了很多复杂的重复工作,只关心数据的获取与操作。准备工作需要有相应的环境和模块:
Ubuntu . bit Python 2.7.6 MySQLdb注意:Ubuntu 自带安装了Python,但是要使用Python连接数据库,还需要安装MySQLdb模块,安装方法也很简单:
然后进入Python环境,import这个包,如果没有报错,则安装成功了:
Python标准的数据库接口的Python DB-API(包括Python操作MySQL)。大多数Python数据库接口坚持这个标准。不同的数据库也就需要不同额模块,由于我本机装的是MySQL,所以使用了MySQLdb模块,对不同的数据库而言,只需要更改底层实现了接口的模块,代码不需要改,这就是模块的作用。Python数据库操作首先我们需要一个测试表建表语句:
Python代码
fetchall()字段特殊字符过滤处理最近在做数据仓库的迁移工作,之前数据仓库的数据都是用的shell脚本来抽取,后来换了python脚本.但是在把数据抽取存放到hadoop时,出现了一个问题:由于数据库字段很多,提前也不知道数据库字段会存储什么内容,hive建表是以tn做分隔,这就导致了一个问题,如果mysql字段内容里面本身含有tn,那么就会出现字段错位情况,并且很头疼的是mysql有多个字段,也不知道哪个字段会出现这个问题.shell脚本里的做法是在需要抽取的字段上用mysql的replace函数对字段进行替换,例如,假设mysql里的字段是column1 varchar(),那么很可能就会出现有特殊字符的情况,在查询的sql语句里加上
之前一直是这么干的,但是这样写sql特别长,特别是有多个字段,也不知道哪个有特殊字符,只要都加上.所以在python中对字段不加处理,最终导致hive表字段对应出现偏差,所以在python里从mysql查询到的字段在写到文件之前需要对每个字段进行过滤处理看个例子,我就以mysql测试为例,首先建一张测试表
有六个字段,都是varchar类型,插入新数据可以在里面插入特殊字符.简单插入条数据测试看看:
其中数据里插入的特殊字符,可能连在一起,也有不连在一起的.python测试代码:
看看输出结果:
字段未过滤查询结果
字段过滤之后结果
可以看到,制表符,换行符,回车都被过滤了.建议:最后说点题外话,不要小视r,回车符.很多人以为回车符就是换行符,其实不是的,r表示回车符,n表示新行.之前代码里其实是过滤掉了tn的,但是抽取的数据还是不对,后来看了源码之后才发现,原来是没有过滤r,就这个不同导致了很多数据抽取不对.
Ubuntu下安装PyV8 这几天需要在使用PyV8来进行python与javascript的交互。之前在window下安装过,直接使用的exe安装的,也没有遇到什么问题。结果这次在Ubuntu安装遇到了不少
jupyter安装小结 前段时间一直使用pycharm写pandas程序,对于大数据开发而言,开发一般是走一步想一步,pycharm不适合。网上推荐使用jupyternotebook,它是一个web版的编辑器
Python中的列表生成式与生成器学习教程 列表生成式即创建列表的方式,最笨的方法就是写循环逐个生成,前面也介绍过可以使用range()函数来生成,不过只能生成线性列表,下面看看更为高级
标签: Python连接MySQL并使用fetchall()方法过滤特殊字符
本文链接地址:https://www.jiuchutong.com/biancheng/384359.html 转载请保留说明!上一篇:深入讲解Python函数中参数的使用及默认参数的陷阱(python函数入门)
友情链接: 武汉网站建设