将JSON营业时间转换为7列法式时间格式CSV/Excel表格求助
解决方案:将营业时间转换为法语格式7列表格
1. 准备环境
- 先安装Python(官网下载即可,安装时务必勾选「Add Python to PATH」选项,避免后续运行命令报错)
- 打开命令提示符(Windows)或终端(Mac/Linux),执行以下命令安装处理表格的工具库:
pip install pandas
2. 编写转换代码
创建一个名为hours_converter.py的Python文件,复制以下带详细注释的代码:
import pandas as pd # --------------- 处理原始数据(如果数据在CSV/Excel里,看下方补充说明)--------------- # 这里用你提供的营业时间数据 opening_hours = { "monday": "930-am-7-pm", "tuesday": "930-am-7-pm", "wednesday": "930-am-7-pm", "thursday": "930-am-7-pm", "friday": "930-am-7-pm", "saturday": "closed", "sunday": "closed" } # 定义星期的法语名称,和原始数据的顺序一一对应 weekdays_fr = ["Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche"] # --------------- 核心转换函数:把英文格式转成法语营业时间 --------------- def convert_to_french_time(time_str): if time_str == "closed": # 对应法语的"关闭" return "fermé" # 拆分时间字符串,比如"930-am-7-pm"会拆成["930", "am", "7", "pm"] parts = time_str.split("-") start_time, start_period, end_time, end_period = parts # 处理开始时间 if start_period == "am": # 上午时间:比如930拆成9和30,转成"9h30";10-am转成"10h" if len(start_time) == 3: start_hour = start_time[:1] start_minute = start_time[1:] start_fr = f"{start_hour}h{start_minute}" else: start_fr = f"{start_time}h" else: # 下午时间转24小时制,比如1pm转成13h start_hour = int(start_time) + 12 start_fr = f"{start_hour}h" # 处理结束时间 if end_period == "pm": end_hour = int(end_time) + 12 end_fr = f"{end_hour}h" else: end_fr = f"{end_time}h" # 拼接成最终法语格式 return f"{start_fr} - {end_fr}" # --------------- 生成转换后的列表并创建表格 --------------- # 把所有营业时间转成法语格式 french_hours = [convert_to_french_time(opening_hours[day]) for day in opening_hours.keys()] # 创建7列的表格数据 df = pd.DataFrame([french_hours], columns=weekdays_fr) # 打印Markdown格式的表格(直接复制就能用) print(df.to_markdown(index=False)) # 可选:把表格保存成Excel文件,取消下面这行的注释即可 # df.to_excel("french_opening_hours.xlsx", index=False)
3. 运行代码
- 打开命令提示符/终端,进入保存
hours_converter.py的文件夹 - 执行以下命令:
python hours_converter.py - 终端会直接输出Markdown格式的表格,也可以打开生成的Excel文件查看结果
针对CSV/Excel原始数据的补充说明
如果你的数据本来就存在CSV或Excel文件中(比如CSV文件的列是monday, tuesday,...sunday,第一行是营业时间),可以修改代码的「处理原始数据」部分:
- 读取CSV文件:
df_raw = pd.read_csv("你的文件名.csv") opening_hours = df_raw.iloc[0].to_dict() - 读取Excel文件:
df_raw = pd.read_excel("你的文件名.xlsx") opening_hours = df_raw.iloc[0].to_dict()
最终输出的表格
运行代码后会得到如下Markdown表格:
| Lundi | Mardi | Mercredi | Jeudi | Vendredi | Samedi | Dimanche |
|---|---|---|---|---|---|---|
| 9h30 - 19h | 9h30 - 19h | 9h30 - 19h | 9h30 - 19h | 9h30 - 19h | fermé | fermé |
内容的提问来源于stack exchange,提问作者Yogiman74
相关产品推荐
相关产品推荐

