如何将日期对象转为字符串并结合pytanggalmerah API实现循环校验?
实现方案与代码示例
1. 先安装依赖包
执行以下命令安装所需工具:
pip install pandas pytanggalmerah openpyxl
2. 核心实现步骤
- 读取Excel文件并提取日期列
- 对日期进行去重处理
- 将日期对象转换为
YYYY-MM-DD格式的字符串 - 拆分年、月、日为整数,循环调用
pytanggalmerah的校验接口,返回布尔结果
3. 完整可运行代码
import pandas as pd from pytanggalmerah import is_holiday # 替换为你的Excel文件路径和日期列名称 excel_path = "your_file.xlsx" date_col_name = "日期" # 读取Excel并转换日期列格式 df = pd.read_excel(excel_path, engine="openpyxl") df[date_col_name] = pd.to_datetime(df[date_col_name], errors="coerce") # 提取去重后的有效日期 unique_valid_dates = df[date_col_name].dropna().unique() # 转换为YYYY-MM-DD字符串并校验 check_results = {} for date_obj in unique_valid_dates: date_str = date_obj.strftime("%Y-%m-%d") year, month, day = map(int, date_str.split("-")) check_results[date_str] = is_holiday(year, month, day) # 输出校验结果 for date, is_holiday_status in check_results.items(): print(f"{date} 是否为节假日:{is_holiday_status}")
4. 关键细节说明
- 日期有效性过滤:
pd.to_datetime的errors="coerce"参数会把Excel里的无效日期转为空值,dropna()直接过滤掉这些无效数据 - 去重逻辑:
unique()方法直接获取不重复的日期数组,避免重复校验 - 参数匹配:
pytanggalmerah的is_holiday函数要求传入整数类型的年、月、日,所以拆分字符串后必须转为int类型 - 结果存储:用字典存储每个日期的校验结果,方便后续导出到Excel或做进一步处理
内容的提问来源于stack exchange,提问作者Akazadi
相关产品推荐
相关产品推荐

