釘釘是一個(gè)功能非常完善的辦公軟件,對(duì)于數(shù)據(jù)來(lái)說(shuō)能不能也可以很好的利用釘釘這個(gè)資源呢?答案是肯定的。釘釘機(jī)器人是釘釘群的一個(gè)高級(jí)擴(kuò)展功能,而且有很多種類(lèi)型,如下:
對(duì)于我們?nèi)粘?shù)據(jù)消息推送的話則選擇自定義機(jī)器人
這里可以修改頭像、名稱,最近由于釘釘機(jī)器人升級(jí),新增了安全設(shè)置,需要自定義關(guān)鍵詞、加簽、IP地址(三選一),我一般都是選擇自定義關(guān)鍵詞,根據(jù)每個(gè)群推送的內(nèi)容不一樣設(shè)置對(duì)應(yīng)的關(guān)鍵詞,大部分都是日?qǐng)?bào)之類(lèi)的關(guān)鍵詞。
完成安全設(shè)置后,復(fù)制出機(jī)器人的Webhook地址,可用于向這個(gè)群發(fā)送消息,格式如下:
這個(gè)鏈接要注意安全,不要泄露
至此,我們建好釘釘機(jī)器人,接下來(lái)就是如何利用Python來(lái)實(shí)現(xiàn)釘釘群的定時(shí)數(shù)據(jù)自動(dòng)推送
Python有釘釘?shù)牡谌桨恍枰獙?dǎo)入就可以了
from dingtalkchatbot.chatbot import DingtalkChatbot
然后寫(xiě)一個(gè)調(diào)用的函數(shù)
剩下的就是處理數(shù)據(jù),把結(jié)果傳到message中,然后運(yùn)行就可以
由于我日常工作中很多數(shù)據(jù)是直接從mysql中查詢得到,這里以mysql查詢?yōu)槔齺?lái)說(shuō)一下。
首先連接和查詢數(shù)據(jù)庫(kù)還是依賴pymysql包,這些基礎(chǔ)的可以參照上篇文章。主要麻煩的是得到的數(shù)據(jù)結(jié)果處理,Python操作mysql得到的數(shù)據(jù)結(jié)果是一個(gè)元組
????result : ((a,b),(c,d),(e,f),)
如果我們需要獲取數(shù)據(jù)則根據(jù)索引取出對(duì)應(yīng)的數(shù)據(jù)即可,
比如GMV:result([0][0]),得到結(jié)果a,其他數(shù)據(jù)以此類(lèi)推
但是這里需要注意的是我們僅僅獲取到了數(shù)據(jù)結(jié)果,但是這個(gè)數(shù)據(jù)是什么內(nèi)容還沒(méi)有得到,就是SQL結(jié)果的列名,這里需要我們手動(dòng)拼一下。舉一個(gè)日常的例子,銷(xiāo)售相關(guān)的數(shù)據(jù)
【銷(xiāo)售數(shù)據(jù)】
mes_gmv = 'GMV:'?+?result([0][0])
mes_order?= '訂單量:'?+?result([0][1])
這里我們拼了一個(gè)數(shù)據(jù)內(nèi)容名稱“銷(xiāo)售數(shù)據(jù)”,然后拼了一個(gè)字段名稱:GMV、訂單量,這樣我們推的數(shù)據(jù)表達(dá)什么意思就很清楚。這里是一行一條數(shù)據(jù)的展示,實(shí)際工作中還會(huì)有數(shù)據(jù)的展示效果跟Excel一致,感興趣的可以試試,大致效果如下:
日期?|?GMV |?訂單量 |?下單人數(shù) |?銷(xiāo)售件數(shù)
10.01 | 1000 |?10000 |?100000 |?20000
10.02?| 1000?|?10000?|?100000 |?20000
以上的拼接都要注意換行,要不然數(shù)據(jù)就全部擠在一行了
到這兒我們已經(jīng)處理完數(shù)據(jù),剩下的就是把數(shù)據(jù)結(jié)果傳到message中,然后設(shè)置定時(shí)任務(wù)就可以定時(shí)推送數(shù)據(jù)了,是不是很簡(jiǎn)單,后面就可以很方便的查詢數(shù)據(jù)了。同時(shí)釘釘?shù)臋C(jī)器人還可以推送很多其他類(lèi)型的消息,感興趣的可以去查詢官方文檔