欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python獲取中國節(jié)假日數(shù)據記錄入JSON文件

 更新時間:2025年04月04日 15:53:02   作者:DriverWon  
項目系統(tǒng)內置的日歷應用為了提升用戶體驗,特別設置了在調休日期顯示“休”的UI圖標功能,那么問題是這些調休數(shù)據從哪里來呢?我嘗試一種更為智能的方法:Python獲取中國節(jié)假日數(shù)據記錄入JSON文件

項目系統(tǒng)內置的日歷應用為了提升用戶體驗,特別設置了在調休日期顯示“休”的UI圖標功能。那么問題是這些調休數(shù)據從哪里來呢?

開發(fā)盆友首先訪問政府官網,查閱并記錄下年度的節(jié)假日及調休安排,再錄入數(shù)據庫。作為追求效率與自動化的我(懶),并不認可這種“可愛”的方式。

我嘗試一種更為智能的方法:Python獲取中國節(jié)假日數(shù)據記錄入JSON文件。

節(jié)假日數(shù)據獲取

獲取地址:https://cdn.jsdelivr.net/gh/NateScarlet/holiday-cn@master/年份.json

requests請求即可

import requests

year = 2024
url = f'https://cdn.jsdelivr.net/gh/NateScarlet/holiday-cn@master/{year}.json'  # 網址
res = requests.get(url=url, timeout=10)  # 發(fā)送請求
print(res.json())

運行結果:

Python獲取中國節(jié)假日數(shù)據_JSON

存入JSON文件

tinydb創(chuàng)建JSON文件,插入獲取到的數(shù)據

from tinydb import TinyDB


if res.status_code == 200:  # 校驗是否返回數(shù)據
    res_data = res.json()
    y = res_data.get('year')
    d = res_data.get('days')
    p = res_data.get('papers')
    with TinyDB(f'{year}.json') as db:  # 創(chuàng)建/打開tinydb
        db.truncate()  # 清空數(shù)據
        db.insert({'year': y, 'days': d, 'papers': p})  # 插入數(shù)據

運行結果:

Python獲取中國節(jié)假日數(shù)據_JSON_02

節(jié)假日數(shù)據讀取

保存的節(jié)假日數(shù)據是以年份為名稱的不同JSON文件,使用tinydb讀取即可

import os
from tinydb import TinyDB

year = 2022
files = [files for root, dirs, files in os.walk(os.path.dirname(os.path.abspath(__file__)))]  # 遍歷當前文件夾
json_file_list = [os.path.splitext(f)[0] for f in files[0]]  # 分割文件名
if str(year) in json_file_list:  # 校驗是否存在年份數(shù)據
    with TinyDB(f"{year}.json") as db:  # 打開tinydb
        print(db.all())  # 獲取所有數(shù)據
else:
    print(f'{year}年數(shù)據不存在')

運行結果:

Python獲取中國節(jié)假日數(shù)據_班休_03

封裝完整代碼

import os
import traceback
import requests
from tinydb import TinyDB


class ChineseHoliday:
    """
    中國節(jié)假日獲取
    """

    @staticmethod
    def download(year):
        """
        獲取并保存節(jié)假日json數(shù)據
        獲取地址來源:https://github.com/NateScarlet/holiday-cn
        :return:
        """
        try:
            url = f'https://cdn.jsdelivr.net/gh/NateScarlet/holiday-cn@master/{year}.json'  # 網址
            res = requests.get(url=url, timeout=10)  # 發(fā)送請求
            # print(res.json())
            if res.status_code == 200:  # 校驗是否返回數(shù)據
                y = res.json().get('year')
                d = res.json().get('days')
                p = res.json().get('papers')
                with TinyDB(f'{year}.json') as db:  # 創(chuàng)建/打開tinydb
                    db.truncate()  # 清空數(shù)據
                    db.insert({'year': y, 'days': d, 'papers': p})  # 插入數(shù)據
        except Exception as e:
            info = f"出了點小問題!\n{repr(e)}\n{traceback.format_exc()}"
            print(info)

    @staticmethod
    def get(year):
        files = [files for root, dirs, files in os.walk(os.path.dirname(os.path.abspath(__file__)))]  # 遍歷當前文件夾
        json_file_list = [os.path.splitext(f)[0] for f in files[0]]  # 分割文件名
        if str(year) in json_file_list:  # 校驗是否存在年份數(shù)據
            with TinyDB(f"{year}.json") as db:  # 打開tinydb
                return db.all()  # 獲取所有數(shù)據
        return

到此這篇關于Python獲取中國節(jié)假日數(shù)據記錄入JSON文件的文章就介紹到這了,更多相關Python獲取中國節(jié)假日數(shù)據內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python中l(wèi)ogging日志庫實例詳解

    Python中l(wèi)ogging日志庫實例詳解

    這篇文章主要介紹了Python常用庫logging日志庫的實例代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • 使用Python實現(xiàn)為PDF文檔設置背景色或背景圖

    使用Python實現(xiàn)為PDF文檔設置背景色或背景圖

    PDF作為一種跨平臺、高保真的文件格式被廣泛應用,這篇文章主要為大家詳細介紹了如何使用Python代碼對PDF文檔進行頁面背景色或背景圖片的設置,需要的可以參考下
    2024-04-04
  • 基于Python實現(xiàn)復刻人生重開模擬器

    基于Python實現(xiàn)復刻人生重開模擬器

    人生重開模擬器是由VickScarlet上傳至GitHub的一款簡單的文字網頁游戲。本文將用Python復刻一下這個游戲,感興趣的小伙伴可以嘗試一下
    2022-10-10
  • python中字符串變二維數(shù)組的實例講解

    python中字符串變二維數(shù)組的實例講解

    下面小編就為大家分享一篇python中字符串變二維數(shù)組的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python繪制分段函數(shù)的實現(xiàn)示例

    Python繪制分段函數(shù)的實現(xiàn)示例

    本文主要介紹了Python繪制分段函數(shù)的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-04-04
  • Python使用flask作為web服務器的代碼實現(xiàn)

    Python使用flask作為web服務器的代碼實現(xiàn)

    Python Flask 框架是一個輕量級的 Web 框架,它簡單易用,靈活多變,非常適合用于構建小型到中型規(guī)模的 Web 應用程序,本文給大家介紹了Python使用flask作為web服務器的代碼實現(xiàn),需要的朋友可以參考下
    2024-06-06
  • 從頭學Python之編寫可執(zhí)行的.py文件

    從頭學Python之編寫可執(zhí)行的.py文件

    這篇文章主要介紹了從頭學Python之編寫可執(zhí)行的.py文件,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • python中zip函數(shù)用法詳解(全)

    python中zip函數(shù)用法詳解(全)

    這篇文章主要給大家介紹了關于python中zip函數(shù)用法詳解的相關資料,zip()是Python的一個內建函數(shù),文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-09-09
  • Python?Requests?基本使用及Requests與?urllib?區(qū)別

    Python?Requests?基本使用及Requests與?urllib?區(qū)別

    在使用Python爬蟲時,需要模擬發(fā)起網絡請求,主要用到的庫有requests庫和python內置的urllib庫,一般建議使用requests,它是對urllib的再次封裝,今天通過本文給大家講解Python?Requests使用及urllib區(qū)別,感興趣的朋友一起看看吧
    2022-11-11
  • selenium+python實現(xiàn)自動化登錄的方法

    selenium+python實現(xiàn)自動化登錄的方法

    這篇文章主要介紹了selenium+python實現(xiàn)自動化登錄的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09

最新評論