oracle 判断日期是否是工作日_【数据分析】一个加工日期的好方法

39fcde4a88b9582d95871515eda315d7.png

最近在整理公司的销售数据,零售数据方面,有时需要刨除节假日日期,这时候就需要制作一个手工日历,与基础的销售报表日期字段进行关联。

手工输入非节假日非常麻烦,在搜索方法的时候发现了一位大佬写的api接口,可以直接输出正常工作日和休息日的加工日期。这里记录一下。

首先,在excel里面,记得从第二行开始写上你需要年份的第一日(日期格式),然后向下拖拽生成365日的日期,如下图:

5e60a8ca5735ab2f7e40d8f76458ef19.png

第二步,在excel中将刚刚形成的日期转化成文本格式,即TEXT(A2,"yyyymmdd")。

124a8234fa944b3ecfa4ee57b7f89dc6.png

第三步,在python中调用api接口,如下:

#调用包之前要确定这些包都安装了
import requests
import json
from win32com.client import Dispatch
from os import path
import time
import pandas as pd
def get_holiday(ws):
    '''根据日期判断日期类型:正常工作日对应结果为 0, 法定节假日对应结果为 1, 节假日调休补班对应的结果为 2,休息日对应结果为 3'''
    url = r'http://api.goseek.cn/Tools/holiday?date='
    try:
        for i in range(2, 367):
            data = ws.Range('A' + str(i)).Value
            new_url = url + data
            r = requests.get(new_url)
            time.sleep(1)
            r.encoding = 'utf-8'
            d = json.loads(r.text)
            answer = d['data']
            ws.Range('B' + str(i)).Value = answer
            print('{}:{}'.format(data, answer))
    except Exception as e:
        print(e)
    finally:
        wb.Close(True)
        xl.quit()
xl = Dispatch("Excel.Application")
xl.Visible = False #True是显示, False是隐藏
xl.DisplayAlerts = 0
wb_path = "D:zakki_work2018年日期.xlsx"     ##这里选择你刚才加工过的表格位置
wb = xl.Workbooks.Open(wb_path)
ws = wb.Sheets('Sheet1')

get_holiday(ws)

运行完毕,你就会得到一张这样的表格:正常工作日对应结果为 0, 法定节假日对应结果为 1, 节假日调休补班对应的结果为 2,休息日对应结果为 3,对应筛选就可以了。

f92b48a05a5c1ef20344b0e2eee5ac60.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值