我有一个像这样的json文件:
{
"jcs-wls-2": {
"componentType": "WLS",
"creationDate": "2018-01-17T09:26:34.000+0000",
"hostName": "jcs-wls-2",
"id": 332687,
"ipAddress": "144.21.79.147",
"isAdminNode": false,
"label": "JCS wls 2",
"publicIpAddress": "144.21.79.147",
"role": "MANAGED_SERVER",
"shapeId": "oc3",
"state": "READY",
"totalStorage": 58368,
"usageType": "MANAGED_SERVER",
"uuid": "9B2984E9F90F42D588F779B28E339864",
"vmId": 332687,
"vmStateDisplayName": "Ready"
},
"jcs-wls-1": {
"componentType": "WLS",
"creationDate": "2018-01-17T09:26:34.000+0000",
"hostName": "jcs-wls-1",
"id": 332686,
"ipAddress": "144.21.79.161",
"isAdminNode": true,
"label": "JCS wls 1",
"publicIpAddress": "144.21.79.161",
"role": "ADMIN_SERVER",
"shapeId": "oc3",
"state": "READY",
"totalStorage": 78848,
"usageType": "ADMIN_SERVER",
"uuid": "DDE23E2801E24499912D12E552A60EC8",
"vmId": 332686,
"vmStateDisplayName": "Ready"
}
}
我想迭代到每个条目jcs-wls-1 ... jcs-wls-100
如何完成这个云?
当我尝试运行查询以提取jcs-wls-1元素时:
servers: "{{ (wls_servers|json_query('[jcs-wls-2]')) }}"
我收到此错误:
致命:[localhost]:失败! => {“msg”:“jmespath.search中的错误 json_query过滤器插件:对于基数为10的int()的\ n无效文字: ' - '“}
我已经尝试了jmesPath教程中的一些示例,但我无法使其工作 如果我删除空格当然这个查询运行 如何“逃避” - char,并迭代我的json fiel? 非常感谢
答案 0 :(得分:0)
如果您想获得所有服务器的列表,请使用json_query('*')
。
如果您想获得特定服务器,请使用json_query('jcs-wls-2')
。
您的原始查询([jcs-wls-2]
)没有意义,因为您尝试按名称[]
而不是整数索引访问索引元素(在列表jcs-wls-2
内),因此您将无效int()
转化。