如何将Excel中的多张关联表格按指定结构转换为JSON格式
你目前使用的excel2json库仅支持将Excel的每个工作表独立转换为JSON文件,不内置多表关联逻辑,需要换用pandas库实现表关联后再导出目标结构JSON,操作方法如下:
环境依赖安装
执行以下命令安装需要的工具库:
pip install pandas openpyxl
完整实现代码
import pandas as pd import json # 读取两张工作表数据,sheet_name替换为你Excel中实际的工作表名称 df_company = pd.read_excel("Companies.xlsx", sheet_name="企业信息表") df_staff = pd.read_excel("Companies.xlsx", sheet_name="企业关联人员表") # 按Member_No分组人员表,生成每个企业对应的关联人员列表 staff_group = df_staff.groupby("Member_No").apply( lambda x: x.drop("Member_No", axis=1).to_dict("records") ).reset_index(name="related_persons") # 关联企业表和人员分组结果,左关联保留所有企业数据 merged_df = pd.merge(df_company, staff_group, on="Member_No", how="left") # 无关联人员的企业填充空列表 merged_df["related_persons"] = merged_df["related_persons"].apply(lambda x: x if isinstance(x, list) else []) # 导出为JSON文件 result = merged_df.to_dict("records") with open("企业关联数据结果.json", "w", encoding="utf-8") as f: json.dump(result, f, ensure_ascii=False, indent=2)
调整说明
- 最终JSON结构可以通过调整
merged_df的字段实现,比如要删除多余字段可以用merged_df = merged_df.drop(["待删除字段名"], axis=1) - 如果需要关联逻辑改为仅保留同时存在于两张表的企业,把
merge方法的how参数改为"inner"即可
内容的提问来源于stack exchange,提问作者Med_Maliari
相关产品推荐
相关产品推荐

