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

Power Query中展开含未知动态日期键的记录的实现问题咨询

解决方法

图形界面操作步骤

  • 导入JSON数据加载到Power Query编辑器后,先保留refId和snapshotIndexes两列
  • 新增自定义列,公式填写:Record.ToTable([snapshotIndexes]),该操作会把每个snapshotIndexes下的动态日期键和对应值转换为子表,子表自带两列:Name存储日期、Value存储对应日期的属性记录
  • 点击自定义列右上角的扩展按钮,仅勾选「Name」和「Value」两列,取消勾选「使用原始列名作为前缀」
  • 点击Value列右上角的扩展按钮,勾选url、value两列,确认展开
  • 最后按需调整列名:将Name列重命名为date,即可得到目标表结构
  • 若需设置主键,可在建模视图同时选中refId和date两列,设置为组合主键即可

完整M代码参考(可直接粘贴到高级编辑器,适配你的数据源即可使用)

let
    // 替换下方数据源路径为你实际的JSON文件路径/导入步骤
    源 = Json.Document(File.Contents("C:\你的文件存储路径\目标JSON文件.json")),
    转换为表 = Table.FromList(源, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    展开首层记录 = Table.ExpandRecordColumn(转换为表, "Column1", {"refId", "snapshotIndexes"}, {"refId", "snapshotIndexes"}),
    新增日期属性子表列 = Table.AddColumn(展开首层记录, "日期属性表", each Record.ToTable([snapshotIndexes])),
    展开日期子表 = Table.ExpandTableColumn(新增日期属性子表列, "日期属性表", {"Name", "Value"}, {"date", "属性记录"}),
    展开属性字段 = Table.ExpandRecordColumn(展开日期子表, "属性记录", {"url", "value"}, {"url", "value"}),
    清理无用列 = Table.RemoveColumns(展开属性字段,{"snapshotIndexes"})
in
    清理无用列

内容的提问来源于stack exchange,提问作者Sudhanshu Chawhan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 18:57:04