Ansible技术问询:如何从嵌套列表中提取元素N5K?
问题分析与解决方案
你的msg值本质是字符串格式的列表元组,并非原生的可索引数据结构,直接用platform_list[0]只会取字符串的第一个字符(比如开头的空格),而非目标元素。
解决步骤
1. 将字符串转换为原生数据结构
先把字符串格式的内容解析成真正的列表+元组,有两种常用方式:
- 方式一:用正则替换+JSON解析
- name: 解析字符串为原生结构 set_fact: parsed_platform: "{{ msg | trim | regex_replace(\"''\", '\"') | from_json }}"
- 方式二:用Python
ast模块直接解析
- name: 用ast解析字符串 set_fact: parsed_platform: "{{ msg | trim | ansible.builtin.ast.literal_eval }}"
说明:trim用于去除字符串前后的空格,确保解析准确
2. 提取目标值N5K
转换完成后,即可通过正常索引提取元素:
- name: 提取N5K debug: msg: "{{ parsed_platform[0][0] }}"
内容的提问来源于stack exchange,提问作者stack gig
相关产品推荐
相关产品推荐

