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

如何将Ansible中字符串格式的变量转换为字典列表?

解决Ansible字符串转字典列表的问题

核心原因

你在test.yml里把字典列表用双引号包裹,导致变量被解析成字符串类型,而非原生的YAML列表/字典结构。

解决方案:使用from_yaml过滤器

Ansible内置的from_yaml过滤器可以直接将符合YAML格式的字符串解析为对应的原生数据结构,这是最直接有效的方法。

修改后的Playbook示例

- hosts: localhost
  vars_files:
    - test.yml
  tasks:
    - name: 将字符串转为字典列表
      set_fact:
        test: "{{ ACTIONS | from_yaml }}"

    - name: 验证类型(应为list)
      debug:
        msg: "{{ test | type_debug }}"

    - name: 遍历验证每个元素
      debug:
        msg: "a的值: {{ item.a }}, b的值: {{ item.b }}"
      loop: "{{ test }}"

其他注意事项

  • 如果你的字符串中使用了双引号(比如ACTIONS: "[{a: \"123\", b: \"1\"}]"),确保字符串本身的转义是正确的,from_yaml依然可以正常解析。
  • 避免手动用split/map等方法拆分字符串,容易因为格式细节(比如空格、引号)出错,from_yaml是官方推荐的结构化字符串解析方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 06:47:34