国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

大數(shù)據(jù)基礎(chǔ)數(shù)據(jù)之中國法定節(jié)假日API

這篇具有很好參考價(jià)值的文章主要介紹了大數(shù)據(jù)基礎(chǔ)數(shù)據(jù)之中國法定節(jié)假日API。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

中國法定節(jié)假日API

Date: November 16, 2021

1.背景

目前業(yè)務(wù)需求中,需要分析法定節(jié)假日。我們?nèi)粘2榭捶ǘü?jié)假日,都是在百度或者某些日歷中查看。但是,網(wǎng)上很少有通過API獲得節(jié)假日的方法。因此,就自己查找資料,整理了一套腳本,獲取相關(guān)節(jié)假日。

2.相關(guān)資料查找

能夠獲取1990年至2050年法定節(jié)假日:https://blog.csdn.net/nayi_224/article/details/109068470

百度萬年歷OPENAPI(只能獲取2020年之前的,后面收費(fèi)了): https://blog.csdn.net/flyingLF/article/details/106426427

開源工具箱 ( https://tool.bitefu.net/ )

其節(jié)假日API: https://www.kancloud.cn/xiaoggvip/holiday_vip/1606900

開源工具箱的API比較可靠,可以日常使用,使用方式如下:

API地址:http://tool.bitefu.net/jiari/
請求方式:GET
請求參數(shù):d (日期/年月/年份)
返回參數(shù):請求一天,返回對應(yīng)節(jié)假日狀態(tài)(0-工作日, 1-休息日, 2-節(jié)假日)
請求示例:

1.獲取某一天的節(jié)假日狀態(tài):http://tool.bitefu.net/jiari/?d=20111001
	返回結(jié)果: 2
2.獲取某月的節(jié)假日:http://tool.bitefu.net/jiari/?d=202110
	返回結(jié)果: {"202110":{"1001":2,"1002":2,"1003":2,"1004":1,"1005":1,"1006":1,"1007":1}}
2.獲取多月的節(jié)假日:http://tool.bitefu.net/jiari/?d=202110,202111
	返回結(jié)果: {"202110":{"1001":2,"1002":2,"1003":2,"1004":1,"1005":1,"1006":1,"1007":1},"202111":false}
3.獲取某年的節(jié)假日:http://tool.bitefu.net/jiari/?d=2010
	返回結(jié)果: 與月的接口類似

3.相關(guān)腳本開發(fā)

3.1 解析json數(shù)據(jù)腳本

以下腳本內(nèi)容,通過開源 REST API,對結(jié)果進(jìn)行json解析,得到節(jié)假日數(shù)據(jù)。

# -*- coding: utf-8 -*-

#python 代碼解析法定節(jié)假日json

#導(dǎo)入請求包
import requests
#導(dǎo)入json包
import json
#導(dǎo)入系統(tǒng)包
import sys

def get_state_legal_holiday(cur_year,file_path):
    DATE_URL="https://tool.bitefu.net/jiari/?d=%s" % (cur_year)
    result=requests.get(DATE_URL)
    if result.status_code != 200 :
        sys.exit(-1)  #報(bào)錯(cuò)退出
    else:
        dict_data=result.json()
        for year_key in dict_data.keys():
            dict_days=dict_data.get(year_key)  #根據(jù)key,獲取對應(yīng)的節(jié)假日
            if dict_days == False:   # false 的情況數(shù)據(jù)無法獲取
                print("===>當(dāng)前年份 【%s】數(shù)據(jù)不存在,跳過" % year_key)
                continue
            else :
                print("===>當(dāng)前年份 【%s】數(shù)據(jù)存在,詳細(xì)數(shù)據(jù)如下:%s " % (year_key,dict_days) )
                for day_key in dict_days.keys():
                    day_status=dict_days.get(day_key) #節(jié)假日狀態(tài): 0-工作日, 1-休息日, 2-節(jié)假日,這里獲取的休日實(shí)際是調(diào)休的節(jié)假日
                    day_res=(str(year_key)+day_key ) +',' + str(year_key)+',' + str(day_status) + '\n'
                    with open(file_path,'a',encoding='utf-8') as file:
                        file.write(day_res)         #csv對應(yīng)字段: f_date_id,f_year_id,f_status

def main():
    if(len(sys.argv)<3):  #參數(shù)不足,默認(rèn)參數(shù)是腳本本身,傳參下標(biāo)從1開始
        print('USAGE ERROR,PLEASE USE LIKE THIS: PYTH_SCRIPT_PATH START_YEAR END_YEAR [RESULT_FILE_PATH]' )
        sys.exit(-1)
    elif(len(sys.argv)==3):  # 傳遞2個(gè)參數(shù),start_year,end_year
        start_year=int(sys.argv[1])
        end_year=int(sys.argv[2])
        result_file_path="./state_holiday.csv"

    else:  #傳遞3個(gè)參數(shù),start_year,end_year,result_file_path
        start_year=int(sys.argv[1])
        end_year=int(sys.argv[2])
        result_file_path=sys.argv[3]

    print("===>相關(guān)參數(shù):起始年份(包含):%s ,截至年份(包含):%s ,數(shù)據(jù)存儲路徑:%s " % (str(start_year),str(end_year),result_file_path))

    for cur_year in range(start_year,end_year+1):
        print('====> cur_year=%s' % str(cur_year))
        get_state_legal_holiday(cur_year,result_file_path)

if __name__ == '__main__' :
    main()

3.2 數(shù)據(jù)更新的腳本

以下腳本,T+1 執(zhí)行,調(diào)用JSON解析腳本,獲得結(jié)果數(shù)據(jù),并寫入對應(yīng)表中。

#!/bin/bash

##國家法定節(jié)假日查詢更新

export HADOOP_USER_NAME=bigdata

if [ $# -eq 0 ]; then
    current_year=$(date  +'%Y')
    begin_year=${current_year}
    end_year=${current_year}
elif [ $# -eq 1 ]; then
    begin_year=$1
    end_year=$1
elif [ $# -eq 2 ]; then
    begin_year=$1
    end_year=$2
else
    echo "USAGE: $0 begin_year end_year"
    exit 0
fi

CUR_TIMESTAMP=$(date +'%s')

#命令配置
BEELINE_CMD="beeline -u jdbc:hive2://node01:10000 -n bigdata "
IMPALA_CMD="impala-shell -i node02:25003 -u bigdata "

WORK_DIR=$PWD/dwd_risk_data_day_flow

#數(shù)據(jù)HIVE存在狀態(tài)(默認(rèn)為0,不存在)
CHECK_STATUS=0

#查驗(yàn)hive中是否存在該年度數(shù)據(jù)
function check_year_data_exist(){
CUR_YEAR=$1
CHECK_SQL="SELECT COUNT(*) CNT FROM dw.dim_state_legal_holiday where f_year_id='${CUR_YEAR}'  ;"
YEAR_DATA_CNT=$( $IMPALA_CMD -B -q "${CHECK_SQL}"  )

if [ $? -ne 0 ];then echo "there is an error!" ; exit 1 ; fi

if [ ${YEAR_DATA_CNT} -gt 0 ];then
    echo "===>當(dāng)前年度【${CUR_YEAR}】的節(jié)假日數(shù)據(jù)已存在,為防請求過多導(dǎo)致IP攔截,不進(jìn)行請求"
    CHECK_STATUS=1
else
    CHECK_STATUS=0
fi

}

function update_holiday_data(){

cur_year="$1"

RESULT_FILE="state_holiday-${cur_year}.csv"
RESULT_PATH=$WORK_DIR/$RESULT_FILE
HDFS_LOAD_PATH="/tmp/bigdata/${RESULT_FILE}"

/opt/anaconda3/bin/python ${WORK_DIR}/state_legal_holiday_parse.py ${cur_year} ${cur_year} "${RESULT_PATH}"

if [ $? -ne 0 ];then echo "there is an error!" ; exit 1 ; fi

hdfs dfs -rm -f ${HDFS_LOAD_PATH}

hdfs dfs -put ${RESULT_PATH} ${HDFS_LOAD_PATH}

LOAD_DATA_SQL="LOAD DATA INPATH '${HDFS_LOAD_PATH}' OVERWRITE INTO TABLE tmp.dim_state_legal_holiday ; "

$BEELINE_CMD -e "${LOAD_DATA_SQL}"

if [ $? -ne 0 ];then echo "there is an error!" ; exit 1 ; fi

UPDATE_DATA_SQL="
REFRESH tmp.dim_state_legal_holiday ;
REFRESH dw.dim_state_legal_holiday ;
INSERT OVERWRITE TABLE dw.dim_state_legal_holiday
select
f_date_id,
f_year_id,
f_status
from
    (
    SELECT
    f_date_id,
    f_year_id,
    f_status,
    row_number() over(partition by f_date_id order by f_date_id ) rank
    FROM
        (
        --增量數(shù)據(jù)
        select
        f_date_id,
        f_year_id,
        f_status
        from tmp.dim_state_legal_holiday
        union all
        --原有數(shù)據(jù)
        select
        f_date_id,
        f_year_id,
        f_status
        from dw.dim_state_legal_holiday
        ) t
    ) p
where rank=1
;
"

$IMPALA_CMD -q "${UPDATE_DATA_SQL}"

if [ $? -ne 0 ];then echo "there is an error!" ; exit 1 ; fi

}

function main(){

for((cur_year=${begin_year};cur_year<=${end_year};cur_year++));
do
    check_year_data_exist ${cur_year}

    if [ ${CHECK_STATUS} -eq 1 ];then
        continue
    fi

    update_holiday_data ${cur_year}

done

}

main

exit 0

如有用處,煩請點(diǎn)贊收藏^_^文章來源地址http://www.zghlxwxcb.cn/news/detail-448395.html

到了這里,關(guān)于大數(shù)據(jù)基礎(chǔ)數(shù)據(jù)之中國法定節(jié)假日API的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • JAVA判斷當(dāng)前時(shí)間是否為節(jié)假日、周末、工作日,調(diào)休日,不報(bào)錯(cuò):IOException!

    JAVA判斷當(dāng)前時(shí)間是否為節(jié)假日、周末、工作日,調(diào)休日,不報(bào)錯(cuò):IOException!

    有這么個(gè)需求,需要判斷傳的這個(gè)日期是否為節(jié)假日,周末,工作日,然后做剩下的操作。 1.首先需要拿到節(jié)假日api 節(jié)假日API地址 其實(shí)這個(gè)api里有接口可以直接判斷某天是否為周末,節(jié)假日,工作日; 但是這個(gè)接口訪問多了會報(bào)一個(gè)403的錯(cuò)誤,也就是請求太多導(dǎo)致的; 而我

    2024年02月14日
    瀏覽(18)
  • 基于Anylogic仿真系統(tǒng)的節(jié)假日城市軌道交通大客流優(yōu)化—以春熙路地鐵站為例

    基于Anylogic仿真系統(tǒng)的節(jié)假日城市軌道交通大客流優(yōu)化—以春熙路地鐵站為例

    目 錄 1緒論 1 1.1研究背景與意義 1 1.2國內(nèi)外研究現(xiàn)狀 1 1.2.1國外研究現(xiàn)狀 1 1.2.2國內(nèi)研究現(xiàn)狀 2 1.3研究內(nèi)容 2 2春熙路地鐵站交通特性分析 4 2.1車站布局分析 4 2.1.1春熙路站概況 4 2.1.2站廳層設(shè)施布局分析 4 2.1.3站臺層設(shè)施布局分析 5 2.2車站運(yùn)營流程分析 6 2.2.1乘客進(jìn)出站流程 6

    2024年02月02日
    瀏覽(37)
  • “中國法研杯”司法人工智能挑戰(zhàn)賽:基于UTC的多標(biāo)簽/層次分類小樣本文本應(yīng)用,Macro F1提升13%+

    相關(guān)文章推薦: 本項(xiàng)目主要完成基于UTC的多標(biāo)簽應(yīng)用,更多部署細(xì)節(jié)請參考推薦文章。本項(xiàng)目提供了小樣本場景下文本多標(biāo)簽分類的解決方案,在 UTC的基礎(chǔ)上利用提示學(xué)習(xí)取得比微調(diào)更好的分類效果,充分利用標(biāo)注信息。 項(xiàng)目背景: 近年來,大量包含了案件事實(shí)及其適用法

    2024年02月05日
    瀏覽(19)
  • 【Python 實(shí)戰(zhàn)基礎(chǔ)】 如何繪制中國地圖展示省份GDP數(shù)據(jù)

    目錄 一、實(shí)戰(zhàn)場景 二、主要知識點(diǎn) 文件讀寫 基礎(chǔ)語法 字符串處理 文件生成 數(shù)據(jù)構(gòu)建 循環(huán)遍歷 三、菜鳥實(shí)戰(zhàn) 1、創(chuàng)建 python 文件 2、運(yùn)行結(jié)果 實(shí)戰(zhàn)場景:?如何繪制中國地圖展示省份GDP數(shù)據(jù) 馬上安排! Hello,菜鳥實(shí)戰(zhàn) 實(shí)戰(zhàn)場景:? 如何繪制中國地圖展示省份GDP數(shù)據(jù) ?* Serv

    2024年02月10日
    瀏覽(25)
  • 中國院士稱“我國已具備 ChatGPT 發(fā)展基礎(chǔ)”

    中國院士稱“我國已具備 ChatGPT 發(fā)展基礎(chǔ)”

    中國工程院院士王堅(jiān)稱「我國已具備支撐 ChatGPT 發(fā)展的算力基礎(chǔ)」,“解好電力行業(yè)的關(guān)鍵問題,有可能會引領(lǐng)下一波AI浪潮?!敝袊こ淘涸菏俊⒗镌苅con創(chuàng)始人王堅(jiān)2月17日在南方電網(wǎng)總部參加第四屆電力調(diào)度AI應(yīng)用大賽時(shí)表示。 我認(rèn)為要開發(fā)出chatGPT這樣的軟件需要有以下

    2024年02月07日
    瀏覽(24)
  • 算法基礎(chǔ)-數(shù)學(xué)知識-歐拉函數(shù)、快速冪、擴(kuò)展歐幾里德、中國剩余定理

    算法基礎(chǔ)-數(shù)學(xué)知識-歐拉函數(shù)、快速冪、擴(kuò)展歐幾里德、中國剩余定理

    互質(zhì)就是兩個(gè)數(shù)的最大公因數(shù)只有1,體現(xiàn)到代碼里面就是 a和b互質(zhì),則b mod a = 1 mod a (目前我不是很理解,但是可以這樣理解:a和b的最大公因數(shù)是1,即1作為除數(shù)和b作為除數(shù)時(shí),對于被除數(shù)a來說余數(shù)是一樣的,即1/a的余數(shù)和b/a是一樣的,即 b mod a = 1 mod a ) 歐拉函數(shù)的作用是

    2024年02月09日
    瀏覽(24)
  • Android-高級-UI-進(jìn)階之路-(七)-SVG-基礎(chǔ)使用-+-繪制中國地圖

    Android-高級-UI-進(jìn)階之路-(七)-SVG-基礎(chǔ)使用-+-繪制中國地圖

    輸入搜索動畫 利用在線繪制 SVG 圖標(biāo)網(wǎng)站 制作搜索圖標(biāo) 可以自己隨意搗鼓繪制,繪制好了之后點(diǎn)擊視圖-源代碼,將 SVG 代碼復(fù)制出來保存成 search_svg.xml 在線轉(zhuǎn)換 svg2vector 點(diǎn)擊空白或者直接將 SVG 拖拽指定區(qū)域進(jìn)行轉(zhuǎn)換 將轉(zhuǎn)換好的 Android 格式的 vector 導(dǎo)入 AS 開始制作動畫關(guān)聯(lián)

    2024年03月20日
    瀏覽(35)
  • Android高級UI進(jìn)階之路(七)——SVG基礎(chǔ)使用(繪制中國地圖)

    Android高級UI進(jìn)階之路(七)——SVG基礎(chǔ)使用(繪制中國地圖)

    Android高級UI進(jìn)階之路(一) —— View的基礎(chǔ)知識 Android高級UI進(jìn)階之路(二) —— 深入理解Android8.0 View的觸摸事件分發(fā)機(jī)制 Android高級UI進(jìn)階之路(三) —— 理解View的工作原理及自定義View入門 Android高級UI進(jìn)階之路(四) —— Paint渲染濾鏡xfermode使用 Android高級UI進(jìn)階之路(五) —— Canva

    2024年02月05日
    瀏覽(32)
  • 聯(lián)想全面打造AI導(dǎo)向的智能基礎(chǔ)設(shè)施,領(lǐng)跑中國智能化變革

    8月18日,“智算無限 全棧智能 ? 聯(lián)想AI算力戰(zhàn)略暨AI服務(wù)器新品發(fā)布會” 在銀川 成功 舉辦 。 會上,聯(lián)想 對外 發(fā)布 聯(lián)想AI算力戰(zhàn)略以及兩款A(yù)I服務(wù)器新品, 同時(shí)還推出了聯(lián)想智算中心解決方案和服務(wù)核心產(chǎn)品 。 聯(lián)想通過 AI內(nèi)嵌的智能終端、AI導(dǎo)向的基礎(chǔ)設(shè)施、AI原生的方案

    2024年02月12日
    瀏覽(25)
  • 再獲認(rèn)可!萬里數(shù)據(jù)庫參編中國信通院數(shù)據(jù)庫研究報(bào)告 GreatSQL入選中國數(shù)據(jù)庫產(chǎn)業(yè)圖譜

    再獲認(rèn)可!萬里數(shù)據(jù)庫參編中國信通院數(shù)據(jù)庫研究報(bào)告 GreatSQL入選中國數(shù)據(jù)庫產(chǎn)業(yè)圖譜

    當(dāng)前,全球數(shù)字經(jīng)濟(jì)加速發(fā)展,數(shù)據(jù)正在成為重組全球要素資源、重塑全球經(jīng)濟(jì)結(jié)構(gòu)、改變?nèi)蚋偁幐窬值年P(guān)鍵力量。 數(shù)據(jù)庫作為存儲與處理數(shù)據(jù)的關(guān)鍵技術(shù),在數(shù)字經(jīng)濟(jì)浪潮下,不斷涌現(xiàn)新技術(shù)、新業(yè)態(tài)、新模式。 7月4-5日, 由中國通信標(biāo)準(zhǔn)化協(xié)會和中國信息通信研究院主

    2024年02月13日
    瀏覽(22)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包