【原创实践】python 获取节假日列表 并保存为excel

要将给定的假期数据生成 Excel 文件,可以使用 Python 的 pandasopenpyxl 库来处理。下面是一个示例代码,展示如何将 JSON 数据转换为 Excel 文件。

数据来源

https://github.com/NateScarlet/holiday-cn/tree/master

安装依赖

首先,确保安装了 pandasopenpyxl。你可以使用以下命令来安装:

bash 复制代码
pip install pandas openpyxl

示例代码

以下是一个示例代码,展示如何将你的 JSON 数据转换为 Excel 文件:

python 复制代码
import pandas as pd
import json
from pandas import ExcelWriter


# 假期数据 JSON
holiday_data = {
    "$schema": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/schema.json",
    "$id": "https://raw.githubusercontent.com/NateScarlet/holiday-cn/master/2024.json",
    "year": 2024,
    "papers": [
        "https://www.gov.cn/zhengce/zhengceku/202310/content_6911528.htm"
    ],
    "days": [
        {"name": "元旦", "date": "2024-01-01", "isOffDay": True},
        {"name": "春节", "date": "2024-02-04", "isOffDay": False},
        {"name": "春节", "date": "2024-02-10", "isOffDay": True},
        {"name": "春节", "date": "2024-02-11", "isOffDay": True},
        {"name": "春节", "date": "2024-02-12", "isOffDay": True},
        {"name": "春节", "date": "2024-02-13", "isOffDay": True},
        {"name": "春节", "date": "2024-02-14", "isOffDay": True},
        {"name": "春节", "date": "2024-02-15", "isOffDay": True},
        {"name": "春节", "date": "2024-02-16", "isOffDay": True},
        {"name": "春节", "date": "2024-02-17", "isOffDay": True},
        {"name": "春节", "date": "2024-02-18", "isOffDay": False},
        {"name": "清明节", "date": "2024-04-04", "isOffDay": True},
        {"name": "清明节", "date": "2024-04-05", "isOffDay": True},
        {"name": "清明节", "date": "2024-04-06", "isOffDay": True},
        {"name": "清明节", "date": "2024-04-07", "isOffDay": False},
        {"name": "劳动节", "date": "2024-04-28", "isOffDay": False},
        {"name": "劳动节", "date": "2024-05-01", "isOffDay": True},
        {"name": "劳动节", "date": "2024-05-02", "isOffDay": True},
        {"name": "劳动节", "date": "2024-05-03", "isOffDay": True},
        {"name": "劳动节", "date": "2024-05-04", "isOffDay": True},
        {"name": "劳动节", "date": "2024-05-05", "isOffDay": True},
        {"name": "劳动节", "date": "2024-05-11", "isOffDay": False},
        {"name": "端午节", "date": "2024-06-10", "isOffDay": True},
        {"name": "中秋节", "date": "2024-09-14", "isOffDay": False},
        {"name": "中秋节", "date": "2024-09-15", "isOffDay": True},
        {"name": "中秋节", "date": "2024-09-16", "isOffDay": True},
        {"name": "中秋节", "date": "2024-09-17", "isOffDay": True},
        {"name": "国庆节", "date": "2024-09-29", "isOffDay": False},
        {"name": "国庆节", "date": "2024-10-01", "isOffDay": True},
        {"name": "国庆节", "date": "2024-10-02", "isOffDay": True},
        {"name": "国庆节", "date": "2024-10-03", "isOffDay": True},
        {"name": "国庆节", "date": "2024-10-04", "isOffDay": True},
        {"name": "国庆节", "date": "2024-10-05", "isOffDay": True},
        {"name": "国庆节", "date": "2024-10-06", "isOffDay": True},
        {"name": "国庆节", "date": "2024-10-07", "isOffDay": True},
        {"name": "国庆节", "date": "2024-10-12", "isOffDay": False}
    ]
}


# 转换为 DataFrame
df = pd.DataFrame(holiday_data['days'])


# 更改表头
df.columns = ['假期名称', '日期', '是否休假']
df['是否休假'] = df['是否休假'].replace({True: '1', False: '0'})

# 显示 DataFrame
print(df)


# 保存为 Excel 文件
output_file = 'china_holidays_2024.xlsx'
with ExcelWriter(output_file, engine='openpyxl') as writer:
    df.to_excel(writer, sheet_name='Holidays', index=False)


print(f"Excel 文件已保存到 {output_file}")


print(f"Excel 文件已保存到 {output_file}")

代码说明

  1. 导入库 :导入 pandasjson
  2. 定义假期数据 :假期数据存储在 holiday_data 变量中。
  3. 转换为 DataFrame :使用 pd.DataFrame() 将假期数据转换为 Pandas DataFrame。
  4. 保存为 Excel 文件 :使用 df.to_excel() 将 DataFrame 保存为 Excel 文件。
  5. 打印消息:显示文件保存路径。

运行此代码后,将生成一个名为 china_holidays_2024.xlsx 的 Excel 文件,其中包含假期的详细信息。

相关推荐
方安乐21 小时前
python之向量、向量和、向量点积
开发语言·python·numpy
zh1570231 天前
JavaScript中WorkerThreads解决服务端计算瓶颈
jvm·数据库·python
代码AI弗森1 天前
一文理清楚“算力申请 / 成本测算 / 并发评估”
java·服务器·数据库
蜡台1 天前
Python包管理工具pip完全指南-----2
linux·windows·python
Mr.朱鹏1 天前
【Python 进阶 | 第四篇】Psycopg3 + Flask 实现 PostgreSQL CRUD 全流程:从连接池到RESTful接口
python·postgresql·flask·virtualenv·fastapi·pip·tornado
摇滚侠1 天前
expdp 查看帮助
java·数据库·oracle
流年似水~1 天前
MCP协议实战:从零搭建一个让Claude能“看见“数据库的工具服务
数据库·人工智能·程序人生·ai·ai编程
2401_871492851 天前
Vue.js监听器watch利用回调函数处理级联下拉框数据联动
jvm·数据库·python
FreakStudio1 天前
亲测可用!可本地部署的 MicroPython 开源仿真器
python·单片机·嵌入式·面向对象·并行计算·电子diy·电子计算机
远洪1 天前
excel 找出两列不同的数据
excel