如何使用整数键简单地访问JSON中的对象



我有这个例子:

---
- 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']

最新更新