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

使用PowerQuery从列表内JSON记录提取逗号分隔值

解决PowerQuery中提取嵌套JSON记录列表为逗号分隔文本的问题

嘿,我之前在处理内部API返回的嵌套JSON时也碰到过一模一样的问题,给你分享几个直接能用的PowerQuery解法,专门搞定把driver_codes这个记录列表转成逗号分隔的列:

方法一:自定义列直接转换(最高效)

假设你已经把JSON数据加载到PowerQuery编辑器,并且有一列名为driver_codes,里面是包含code字段的记录列表(比如[{code: "HAM"}, {code: "VER"}]这种结构),按以下步骤操作:

  1. 点击添加列选项卡,选择自定义列
  2. 在弹出的公式编辑器里输入这段M语言代码:
if List.IsEmpty([driver_codes]) then null 
else Text.Combine(List.Transform([driver_codes], each [code]), ", ")
  1. 点击确定,新列就会自动把每个记录里的code提取出来,合并成逗号分隔的文本

代码解释:

  • List.Transform([driver_codes], each [code]):遍历driver_codes列表里的每一条记录,提取出code字段的值,得到一个纯字符串列表(比如{"HAM", "VER"})
  • Text.Combine(..., ", "):把字符串列表用逗号加空格连接成单个文本
  • 开头的if List.IsEmpty判断是为了处理空列表的情况,避免报错

方法二:先展开再分组(适合需要查看中间步骤的场景)

如果你想先确认每个code的具体内容,也可以用展开+分组的方式:

  1. 选中driver_codes列,点击转换选项卡的展开到新行,把每个记录拆成单独的行
  2. 再展开记录里的code字段,得到一列单独的code值
  3. 选中race_id列(或者你用来分组的唯一标识列),点击转换选项卡的分组依据,设置:
    • 分组依据:race_id
    • 新列名:比如driver_codes_combined
    • 操作:所有行,然后在自定义公式里用Text.Combine([code], ", ")

这种方法更直观,但数据量大的时候效率不如第一种方法。

举个实际效果的例子:

原始driver_codes列内容:[{code: "LEC"}, {code: "SAI"}, {code: "NOR"}]
处理后得到的文本:"LEC, SAI, NOR"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:30:49