求助:将Excel表格数据转换为指定Python字典格式
Excel转指定聚合格式JSON的解决方法
原始Excel数据
| servername | instance |
|---|---|
| server1 | a |
| server1 | b |
| server3 | c |
目标JSON格式
(注:你给出的示例中server2应为server3,属于笔误,以下是正确目标格式)
{ "server1": ["a", "b"], "server3": ["c"] }
你之前的尝试问题
使用excel2json库直接转换时,它只会按行生成JSON对象列表,不会自动聚合相同servername的instance,所以无法得到预期结果。另外你的代码中文件路径用了单反斜杠,在Python中会被识别为转义字符,可能导致路径解析错误,建议改为双反斜杠或原始字符串。
可行解决方案
用pandas库可以轻松实现数据聚合,步骤如下:
- 先安装依赖库:
pip install pandas openpyxl
- 编写转换代码:
import pandas as pd import json # 读取Excel文件,路径用原始字符串避免转义问题 file_path = r'C:\Users\AAA\Downloads\records.xlsx' df = pd.read_excel(file_path) # 按servername分组,将对应instance合并为列表,再转为字典 aggregated_data = df.groupby('servername')['instance'].apply(list).to_dict() # 输出格式化后的JSON print(json.dumps(aggregated_data, indent=2))
代码说明
groupby('servername'):按服务器名称对数据分组apply(list):将每组的所有instance值合并成一个列表to_dict():把分组后的结果转换为目标格式的字典json.dumps(..., indent=2):将字典格式化为带缩进的JSON字符串,方便阅读
内容的提问来源于stack exchange,提问作者gowri
相关产品推荐
相关产品推荐

