如何使用Python在JSON日历文件中查找替换指定时间字符串为会议关键词
解决方案
实现思路
无需修改原有ics转JSON的代码,仅通过独立脚本处理已生成的输出文件即可完成替换,不需要转换文件格式,原JSON文件可直接处理。
操作步骤
- 首先自定义时间与对应关键词的映射规则,确保时间字符串格式和原输出文件中的格式完全一致。
- 运行独立替换脚本完成替换。
替换脚本
# 配置项 # 原输出文件路径 INPUT_PATH = "myschool.json" # 替换后文件的保存路径 OUTPUT_PATH = "processed_calendar.json" # 自定义替换规则,键为待替换的时间字符串,值为目标关键词 REPLACE_RULE = { "08:00": "Meeting1", "09:00": "Meeting2", "09:45": "MorningBreak", # 可按需新增更多规则 } # 执行替换逻辑 with open(INPUT_PATH, "r", encoding="utf-8") as f: content = f.read() for time_str, keyword in REPLACE_RULE.items(): content = content.replace(time_str, keyword) with open(OUTPUT_PATH, "w", encoding="utf-8") as f: f.write(content) print(f"替换完成,结果已保存至:{OUTPUT_PATH}")
可选精准匹配优化
如果担心非时间位置出现相同字符串被误替换,可以使用正则进行精准匹配,仅替换日期后的时间字段:
import re # 其他配置项不变,仅替换核心逻辑 with open(INPUT_PATH, "r", encoding="utf-8") as f: content = f.read() for time_str, keyword in REPLACE_RULE.items(): # 正则匹配:仅匹配「月/日/年 」格式后的时间字符串 pattern = rf"(?<=\d{{2}}/\d{{2}}/\d{{2}} ){time_str}" content = re.sub(pattern, keyword, content) with open(OUTPUT_PATH, "w", encoding="utf-8") as f: f.write(content)
内容的提问来源于stack exchange,提问作者Thomas Mulier
相关产品推荐
相关产品推荐

