多JSON转Excel:如何将list类型labels列转为逗号分隔值
问题:JSON转Excel时无法将list类型的「labels」列转为逗号分隔值
我有大量JSON文件需要转换为Excel表格,其余步骤均能正常完成,但在最后一步遇到报错:无法将数据类型为list的「labels」列转换为逗号分隔值。
附上JSON示例:
{ "color":"DEFAULT","isTrashed":false, "isPinned":false, "isArchived":false, "textContent":"Note's sample text", "title":"Note's Title", "userEditedTimestampUsec":1633783789813000, "createdTimestampUsec":1619811485384000, "labels": [ {"name":"REF"}, {"name":"2021"} ] }
按照某YouTube教程对应片段操作时,教程可行的步骤在我这里出现错误。我的需求是将所有列整合为单条记录,嵌套变量以逗号分隔值的形式存入同一记录中。
解决方案
报错原因
教程中的JSON可能是简单字符串数组格式(如["REF","2021"]),但你的labels是对象数组,每个元素包含name字段,直接转换时工具无法自动识别并提取目标值,导致报错。
方法1:Python批量处理(高效适合大量文件)
用pandas库提取labels中的name字段,再合并为逗号分隔字符串:
import pandas as pd import json import os def batch_json_to_excel(folder_path): all_data = [] # 遍历文件夹下所有JSON文件 for file_name in os.listdir(folder_path): if file_name.endswith(".json"): file_path = os.path.join(folder_path, file_name) with open(file_path, "r", encoding="utf-8") as f: data = json.load(f) # 处理labels列:提取name并合并 if "labels" in data and isinstance(data["labels"], list): data["labels"] = ", ".join([item["name"] for item in data["labels"]]) all_data.append(data) # 转换为Excel df = pd.DataFrame(all_data) df.to_excel("output.xlsx", index=False) # 替换为你的JSON文件所在文件夹路径 batch_json_to_excel("./your_json_files")
方法2:Excel Power Query(无需代码)
适合不想写代码的场景,通过Power Query提取并合并值:
- 打开Excel,点击「数据」选项卡 → 「获取数据」→ 「文件」→ 「从JSON」(批量处理选「从文件夹」)
- 在Power Query编辑器中,找到
labels列,点击列右侧的双箭头图标 - 选择「提取值」,在弹出窗口中设置分隔符为「逗号」,点击确定
- 此时
labels列会变为逗号分隔的文本,点击「关闭并上载」即可生成Excel表格
内容的提问来源于stack exchange,提问作者abdulrahman
相关产品推荐
相关产品推荐

