You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power BI处理多结构JSON转独立表:解决仅识别首个JSON的问题

Power BI 批量转换多结构JSON为独立数据表解决方案

场景一:所有JSON存储在同一张基础表中(含表名标记)

如果你的多个JSON数据集中在一张表(例如包含Table_Name和JSON_Data两列,每行对应一个目标表的JSON),按以下步骤操作:

  1. 解析JSON文本
    • 进入Power Query编辑器,选中基础表,点击添加列 > 自定义列,输入M代码:
      = Json.Document([JSON_Data])
      
      此步骤将每行的JSON文本解析为可操作的列表格式。
  2. 拆分并扩展JSON结构
    • 选中新生成的自定义列,点击转换 > 展开到新行,将JSON数组中的每个对象拆分为单独行。
    • 再次选中该列,点击转换 > 扩展到列 > 扩展所有列,Power BI会自动识别JSON的键作为列名,生成结构化表格。
  3. 拆分并保存为独立表
    • 选中Table_Name列,点击主页 > 筛选行,分别筛选每个表名(如Employee、Order)。
    • 筛选完成后,点击主页 > 关闭并上载至,选择"仅创建连接",右键对应连接选择"加载到...",指定表名即可生成独立数据表。

场景二:每个JSON为独立文本/文件

如果每个JSON是单独的文本文件或可复制的纯文本:

从JSON文件导入

  • 点击获取数据 > 文件 > JSON,选择目标JSON文件,Power Query会自动解析为表格,调整列类型后,关闭并上载,命名为对应表名。

从复制的JSON文本导入

  • 点击获取数据 > 空白查询,进入Power Query编辑器,打开高级编辑器,替换默认代码为:
    let
        Source = Json.Document("此处粘贴你的完整JSON文本"),
        转换为表 = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
        扩展列 = Table.ExpandRecordColumn(转换为表, "Column1", Record.FieldNames(Source{0}), Record.FieldNames(Source{0}))
    in
        扩展列
    
  • 替换完成后点击"完成",按需调整列的数据类型(如日期、数值),最后关闭并上载为对应表名。

关键注意事项

  • 确保所有JSON为标准数组格式(外层由[]包裹对象集合),若为单个对象,需手动在外层添加[]后再解析。
  • 不同结构的JSON必须单独处理,禁止一次性合并扩展,否则会因结构不匹配导致列丢失或数据错误。
  • 若基础表中JSON集中在同一列的多个单元格,必须先执行展开到新行操作,否则只会处理首个单元格的JSON数据。

内容的提问来源于stack exchange,提问作者Chinna Swamulu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 01:50:54