如何用Python从Excel列的JSON数组中按SID提取name值
提取Excel中JSON数组对应SID的name值方案
方法一:Python Pandas 脚本实现
适合有编程基础的用户,处理效率高,适配大体积文件。
- 先安装依赖包(未安装过的话执行):
pip install pandas openpyxl
- 替换文件路径后运行以下脚本:
import pandas as pd import json # 读取目标Excel文件 df = pd.read_excel("your_excel_file.xlsx") # 定义提取name列表的函数 def get_name_list(json_str): # 将单引号替换为双引号,转换为标准JSON格式 fixed_json = json_str.replace("'", "\"") # 解析JSON数组 items = json.loads(fixed_json) # 提取所有name值返回列表 return [item["name"] for item in items] # 新增列存储提取结果 df["Name_List"] = df["Sumary"].apply(get_name_list) # 输出结果并保存到新Excel print(df[["SID", "Name_List"]]) df[["SID", "Name_List"]].to_excel("extracted_names.xlsx", index=False)
方法二:Excel Power Query 可视化操作
适合无编程基础的用户,纯界面操作无代码。
步骤如下:
- 打开Excel文件,选中包含SID和Sumary的数据区域。
- 点击顶部「数据」选项卡 → 「从表格/区域」,确认数据带表头后导入Power Query编辑器。
- 修复JSON格式:选中Sumary列,点击「转换」选项卡 → 「替换值」,将
'替换为",把非标准JSON转为可解析的标准格式。 - 解析JSON数组:选中Sumary列,点击「转换」选项卡 → 「JSON」,列内容会变为列表形式。
- 展开列表到行:点击Sumary列标题旁的展开图标 → 选择「到新行」,将每个JSON对象拆分为单独行。
- 提取name字段:点击Sumary列标题旁的展开图标,仅勾选
name字段后确定。 - 按SID分组聚合:点击「转换」选项卡 → 「分组依据」,设置:
- 分组依据:
SID - 新列名:
Name_List - 操作:「值」
- 列:
name
- 分组依据:
- 点击「关闭并上载」,提取结果会自动导入到新的Excel工作表。
关键注意事项
你的Sumary列存储的是单引号包裹的非标准JSON,必须先替换为双引号才能被解析工具识别,两种方法都已包含此处理步骤。
内容的提问来源于stack exchange,提问作者shubhrika tyagi
相关产品推荐
相关产品推荐

