钉钉是一个功能非常完善的办公软件,对于数据来说能不能也可以很好的利用钉钉这个资源呢?答案是肯定的。钉钉机器人是钉钉群的一个高级扩展功能,而且有很多种类型,如下:
对于我们日常数据消息推送的话则选择自定义机器人
这里可以修改头像、名称,最近由于钉钉机器人升级,新增了安全设置,需要自定义关键词、加签、IP地址(三选一),我一般都是选择自定义关键词,根据每个群推送的内容不一样设置对应的关键词,大部分都是日报之类的关键词。
完成安全设置后,复制出机器人的Webhook地址,可用于向这个群发送消息,格式如下:
这个链接要注意安全,不要泄露
至此,我们建好钉钉机器人,接下来就是如何利用Python来实现钉钉群的定时数据自动推送
Python有钉钉的第三方包,只需要导入就可以了
from dingtalkchatbot.chatbot import DingtalkChatbot
然后写一个调用的函数
剩下的就是处理数据,把结果传到message中,然后运行就可以
由于我日常工作中很多数据是直接从mysql中查询得到,这里以mysql查询为例来说一下。
首先连接和查询数据库还是依赖pymysql包,这些基础的可以参照上篇文章。主要麻烦的是得到的数据结果处理,Python操作mysql得到的数据结果是一个元组
result : ((a,b),(c,d),(e,f),)
如果我们需要获取数据则根据索引取出对应的数据即可,
比如GMV:result([0][0]),得到结果a,其他数据以此类推
但是这里需要注意的是我们仅仅获取到了数据结果,但是这个数据是什么内容还没有得到,就是SQL结果的列名,这里需要我们手动拼一下。举一个日常的例子,销售相关的数据
【销售数据】
mes_gmv = 'GMV:' + result([0][0])
mes_order = '订单量:' + result([0][1])
这里我们拼了一个数据内容名称“销售数据”,然后拼了一个字段名称:GMV、订单量,这样我们推的数据表达什么意思就很清楚。这里是一行一条数据的展示,实际工作中还会有数据的展示效果跟Excel一致,感兴趣的可以试试,大致效果如下:
日期 | GMV | 订单量 | 下单人数 | 销售件数
10.01 | 1000 | 10000 | 100000 | 20000
10.02 | 1000 | 10000 | 100000 | 20000
以上的拼接都要注意换行,要不然数据就全部挤在一行了
到这儿我们已经处理完数据,剩下的就是把数据结果传到message中,然后设置定时任务就可以定时推送数据了,是不是很简单,后面就可以很方便的查询数据了。同时钉钉的机器人还可以推送很多其他类型的消息,感兴趣的可以去查询官方文档