我正在尝试使用 jmespath 从 JSON 文档中检索密钥(instanceId)。JSON 文档如下所示:
targets = {'instances':
[
{'instanceId': u'i-035dd764fe1a08091', 'hostIp': '10.200.10.150'},
{'instanceId': u'i-04ed0d110fef5aef7', 'hostIp': '10.200.10.121'},
{'instanceId': u'i-0f7778162b14c954f', 'hostIp': '10.200.20.135'}
]
}
我觉得这应该工作:
jmespath.search('instances[?hostIp=="10.200.10.150"].instanceId', targets)
但它返回一个空集。当用字符串(例如字母)替换IP 地址时,它返回instanceId。当它是一个数字时,用于搜索值的 jmespath 语法是什么?最终,我试图从hostIp 中获取instanceId。