导航
- 报表!报表!
- 代码去哪儿了
- 乱码
- 复杂查询
- 人生苦短,我用python
- 实战案例
- 结语
- 参考
人生苦短,我用python。
第一次接触pyton是在2018年底。那一年,去了一家做AI教育的公司。
那一年,也是人工智能风靡的一年。因为大部分的AI库都是基于Python的,所以python也被炒得热乎朝天。
真正下定决心开启python之旅,其实是两年之后。一部分原因是在学习推荐算法,而更重要的原因是为了应对各种繁杂的数据报表。
报表!报表!
离开上家公司之后,去了另外一家新兴行业的创业公司。
因为所在项目组是新成立的,所以前期老板会要求导出数据报表。当然,随着业务的不断发展,这种需求几乎一直都有。
人工导出报表,总是让人不堪其扰。
而这种需求总是不固定的。有些报表是临时的,有些报表可能会使用几个月。
好不夸张地说,这年写的报表超过了过去职业生涯的总和。
最可气的是,这种导出报表,在领导们看来了就是写几句sql
的事情,没有必要体现在工作任务中。
代码去哪儿了
我们平时其实都会忙于正式的工作——项目的编码。
所以,这些项目都是会提交到git
仓库。
而那些临时性的报表需求,简单一点的我就写个sql
处理了,复杂一点的会用C#
或者Java
写个导出功能代码。
但是,需求繁杂,管理也不够正式。当下次同样的需求来的时候,又会满世界去找代码…
乱码
有人说,很多数据库客户端工具也能导出数据到excel? 没有必要写程序导出。
但是,有的导出之后,在本机打开是正常的,发送给别人就成了乱码。
这里还是建议是用程序导出,可以设置合适的格式。
复杂查询
报表本身用于数据分析。数据库的设计总是很难满足不同维度的数据导出,又说一些复杂的报表,往往需要超过3张以上数据库表才能完成。
联表的复杂度就不用多说,如果有些表数据太大,sql执行超时也是很普遍的。
而程序处理,显得更加灵活。
人生苦短,我用python
对比了多种语言,踩过了无数的坑,最终发现python这一利器。
python具备很多优点:
- 简单易学:相对于java等,语法更简单,更易上手,适用于编程初学者。
- 数据分析数据挖掘:海量数据的处理是 Python 的强项。
- 轻量:随手写一个python文件即可执行。如果使用
C#
或者Java
,需要构建一个项目。
特别适合做数据统计和分析。
实战案例
需求:
导出2018-11-12~2019-01-01时间段内的文章到excel表格,字段如下:
文章ID | 文章类型 | 标签 | 标题 | 创建时间 |
---|
使用Python来实现,比较简单,这里给出一个万能模板,您只需要更改数据库连接,sql即可。
#_*_coding:utf-8_*_
#导入pymysql的包
import pymysql
import pymysql.cursors
# 导入excel操作包
import xlwt
from datetime import datetime
def get_data(sql):
# 创建数据库连接
#获取一个数据库连接,注意如果是UTF-8类型的,需要制定数据库</