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

如何将未知长度的嵌套列表合并为无嵌套的一维列表?

解决嵌套列表转一维列表的方法

针对你用json_query得到动态嵌套列表的场景,有两种简洁的实现方式:

方法1:使用Ansible内置的flatten过滤器

Ansible的Jinja2过滤器flatten可以直接将任意层级的嵌套列表展开为一维列表,完全适配动态长度的场景,不需要固定索引。用法非常简单:

- name: 展开嵌套列表
  debug:
    msg: "{{ my_list | flatten }}"

针对你的示例my_list: [ [1,2],[3,4],[5,6] ],执行后会直接得到[1,2,3,4,5,6]。如果嵌套层级更深(比如三维列表),还可以通过flatten(n)指定展开的层级,flatten(1)只展开最外层嵌套,默认flatten()会展开所有层级。

方法2:在json_query中直接展开

如果希望在解析阶段就直接得到一维列表,不用后续处理,可以利用JSONPath的展开语法。假设你的原始数据结构类似:

raw_data:
  items: [ [1,2],[3,4],[5,6] ]

那么在json_query中使用[]运算符直接展开子列表:

- name: 解析时直接得到一维列表
  debug:
    msg: "{{ raw_data | json_query('items[]') }}"

这样json_query会直接返回[1,2,3,4,5,6],省去后续的扁平化步骤。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 04:39:34