用Python做钉钉消息推送。同事写了个钉钉推送,就觉得好玩正好这会没事就重现下
写的很简单粗糙,之后有新需求了再优化
import pandas as pd
from datetime import datetime
import requests
current_year = str(datetime.now().year)
current_month = str(datetime.now().month)
current_day = str(datetime.now().day)
#head=1 用索引为1的作为columns值
df = pd.read_excel(r"my file direction",header=1)
for col in df.columns:
df[col] = df[col].astype(str)
row_list = df.columns.values
columns_list = df.index.values
l2_dict = []
for i in row_list:
zb_list = []
for j in columns_list:
day = df.loc[j,i]
zb_list.append(day)
l2_dict.append(zb_list)
# print(l2_dict)
new_dict = {}
new_list = []
for item in l2_dict:
time = item[0]
l2 = item[1]
l1 = item[2]
time2 = item[3]
l2_new = item[4]
l1_new = item[5]
new_dict = {"时间":time,"二线值班人":l2,"一线值班人":l1}
new_list.append(new_dict)
new_dict = {"时间":time2,"二线值班人":l2_new,"一线值班人":l1_new}
new_list.append(new_dict)
# print(new_list)
try:
for item1 in new_list:
day = item1["时间"]
day1 = day.split('(')[0]
if day1 == current_day:
l2_new = item1["二线值班人"]
l1_new = item1["一线值班人"]
push_message = "当前时间;{}-{}-{}\n今日二线值班人:{}\n今日一线值班人;{}".format(current_year,current_month,day,l2_new,l1_new)
else:
continue
except Exception as e:
push_message = e
import time
import hmac
import hashlib
import base64
import urllib.parse
import requests
import json
#用的钉钉的示例文件
timestamp = str(round(time.time() * 1000))
secret = 'my secret'
secret_enc = secret.encode('utf-8')
string_to_sign = '{}\n{}'.format(timestamp, secret)
string_to_sign_enc = string_to_sign.encode('utf-8')
hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))
url = f'https://oapi.dingtalk.com/robot/send?access_token=token_value×tamp={timestamp}&sign={sign}'
head = {"Content-Type":"application/json"}
data = {
"at":{
"isAtAll":"false",
},
"text":{
"content":push_message
},
"msgtype":"text",
}
req = requests.post(url=url,data=json.dumps(data),headers=head)
print(req.text)