最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

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

獲取地址: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'  # 網(wǎng)址
res = requests.get(url=url, timeout=10)  # 發(fā)送請求
print(res.json())

運行結(jié)果:

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

存入JSON文件

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

from tinydb import TinyDB


if res.status_code == 200:  # 校驗是否返回數(shù)據(jù)
    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ù)據(jù)
        db.insert({'year': y, 'days': d, 'papers': p})  # 插入數(shù)據(jù)

運行結(jié)果:

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

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

保存的節(jié)假日數(shù)據(jù)是以年份為名稱的不同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__)))]  # 遍歷當(dāng)前文件夾
json_file_list = [os.path.splitext(f)[0] for f in files[0]]  # 分割文件名
if str(year) in json_file_list:  # 校驗是否存在年份數(shù)據(jù)
    with TinyDB(f"{year}.json") as db:  # 打開tinydb
        print(db.all())  # 獲取所有數(shù)據(jù)
else:
    print(f'{year}年數(shù)據(jù)不存在')

運行結(jié)果:

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

封裝完整代碼

import os
import traceback
import requests
from tinydb import TinyDB


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

    @staticmethod
    def download(year):
        """
        獲取并保存節(jié)假日json數(shù)據(jù)
        獲取地址來源:https://github.com/NateScarlet/holiday-cn
        :return:
        """
        try:
            url = f'https://cdn.jsdelivr.net/gh/NateScarlet/holiday-cn@master/{year}.json'  # 網(wǎng)址
            res = requests.get(url=url, timeout=10)  # 發(fā)送請求
            # print(res.json())
            if res.status_code == 200:  # 校驗是否返回數(shù)據(jù)
                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ù)據(jù)
                    db.insert({'year': y, 'days': d, 'papers': p})  # 插入數(shù)據(jù)
        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__)))]  # 遍歷當(dāng)前文件夾
        json_file_list = [os.path.splitext(f)[0] for f in files[0]]  # 分割文件名
        if str(year) in json_file_list:  # 校驗是否存在年份數(shù)據(jù)
            with TinyDB(f"{year}.json") as db:  # 打開tinydb
                return db.all()  # 獲取所有數(shù)據(jù)
        return

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

相關(guān)文章

  • 使用python實現(xiàn)一個簡單的圖片爬蟲

    使用python實現(xiàn)一個簡單的圖片爬蟲

    在本文中,我們將學(xué)習(xí)如何使用Python創(chuàng)建一個簡單的圖片爬蟲,我們將利用requests庫來發(fā)送HTTP請求,BeautifulSoup庫來解析HTML頁面,以及os和shutil庫來下載和保存圖片,通過這個教程,你將學(xué)會如何爬取網(wǎng)頁上的圖片并保存到本地,需要的朋友可以參考下
    2024-02-02
  • python如何查找圖片按鈕的坐標(biāo)位置

    python如何查找圖片按鈕的坐標(biāo)位置

    這篇文章主要介紹了python如何查找圖片按鈕的坐標(biāo)位置,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Python中if __name__ == ''__main__''作用解析

    Python中if __name__ == ''__main__''作用解析

    這篇文章主要介紹了Python中if __name__ == '__main__'作用解析,這斷代碼在Python中非常常見,它有作用?本文就解析了它的作用,需要的朋友可以參考下
    2015-06-06
  • python?web?開發(fā)之Flask中間件與請求處理鉤子的最佳實踐

    python?web?開發(fā)之Flask中間件與請求處理鉤子的最佳實踐

    Flask作為輕量級Web框架,提供了靈活的請求處理機制,中間件和請求鉤子允許開發(fā)者在請求處理的不同階段插入自定義邏輯,實現(xiàn)諸如身份驗證、日志記錄、數(shù)據(jù)預(yù)處理等功能,本文將詳細介紹Flask的請求處理鉤子、g對象以及中間件模式的使用方法和最佳實踐,感興趣的朋友一起看看吧
    2025-05-05
  • Python實現(xiàn)TXT數(shù)據(jù)轉(zhuǎn)三維矩陣

    Python實現(xiàn)TXT數(shù)據(jù)轉(zhuǎn)三維矩陣

    在數(shù)據(jù)處理和分析中,將文本文件中的數(shù)據(jù)轉(zhuǎn)換為三維矩陣是一個常見的任務(wù),本文將詳細介紹如何使用Python實現(xiàn)這一任務(wù),感興趣的小伙伴可以了解下
    2024-01-01
  • PYTHON如何讀取和寫入EXCEL里面的數(shù)據(jù)

    PYTHON如何讀取和寫入EXCEL里面的數(shù)據(jù)

    這篇文章主要介紹了PYTHON如何讀取和寫入EXCEL里面的數(shù)據(jù),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • Python3利用Qt5實現(xiàn)簡易的五子棋游戲

    Python3利用Qt5實現(xiàn)簡易的五子棋游戲

    這篇文章主要為大家詳細介紹了Python3利用Qt5實現(xiàn)簡易的五子棋游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • 詳解pyppeteer(python版puppeteer)基本使用

    詳解pyppeteer(python版puppeteer)基本使用

    這篇文章主要介紹了詳解pyppeteer(python版puppeteer)基本使用 ,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Django中的模型類設(shè)計及展示示例詳解

    Django中的模型類設(shè)計及展示示例詳解

    這篇文章主要介紹了Django中的模型類設(shè)計及展示,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • python開發(fā)入門——列表生成式

    python開發(fā)入門——列表生成式

    這篇文章主要介紹了python 列表生成式的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)python開發(fā),感興趣的朋友可以了解下
    2020-09-09

最新評論

沙坪坝区| 巩义市| 泾源县| 台北市| 珲春市| 桂东县| 南投县| 定兴县| 东莞市| 寻乌县| 嵊泗县| 宁安市| 崇仁县| 张掖市| 大悟县| 曲松县| 汽车| 东宁县| 大丰市| 彭州市| 南漳县| 孟村| 沧州市| 化德县| 新巴尔虎右旗| 杭州市| 曲松县| 阜宁县| 新晃| 视频| 南开区| 襄樊市| 昂仁县| 大化| 富宁县| 郯城县| 绥中县| 依兰县| 嘉善县| 澄江县| 德昌县|