我有这个例子:
---
- hosts: localhost
gather_facts: false
vars:
json1: {'disk_info': {'A': {'label': 'Hard disk 1'}, 'B': {'label': 'Hard disk 2'}}}
json2: {'disk_info': {'0': {'label': 'Hard disk 1'}, '1': {'label': 'Hard disk 2'}}}
tasks:
- debug: msg="{{json1.disk_info.A}}"
- debug: msg="{{item.value.label}}"
loop: "{{ lookup('dict', json2.disk_info) }}"
when: "'0' in item.key"
是否可以像访问json 2.disk_info.A一样访问json 1.disk_info.0,即不在dict上查找?
是的,这是完全可能的。但你必须发挥一些作用,以确保你的密钥名称被读取为包含你的数字的字符串,而不是被解释为列表的整数索引。
因此,以下将引发错误:
json2.disk_info.0
json2.disk_info[0]
因此,数据结构的正确语法是:
json2.disk_info['0']