json - 无法解析 JMESPATH 的 json 输出
问题描述
我正在运行以下 azure cli 命令来获取特定管理组的订阅 ID。
命令:
az account management-group show --name "Simple-NonProduction-EMG-v01" -e -r
输出:
{
"children": [
{
"children": null,
"displayName": "TestSub-ABC-Dev",
"id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"roles": null,
"type": "/subscriptions"
},
{
"children": null,
"displayName": "TestSubIdentity",
"id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"roles": null,
"type": "/subscriptions"
},
{
"children": null,
"displayName": "TestSub-Build-DevTest",
"id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"roles": null,
"type": "/subscriptions"
},
{
"children": null,
"displayName": "Azure ITI - TestSub Pre-prod",
"id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"roles": null,
"type": "/subscriptions"
},
{
"children": null,
"displayName": "TestSub-IS-Demo",
"id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"roles": null,
"type": "/subscriptions"
},
{
"children": null,
"displayName": "TestSub-PQR-QA",
"id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"roles": null,
"type": "/subscriptions"
},
{
"children": null,
"displayName": "TestSub-PQR-PreProd",
"id": "/subscriptions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"name": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"roles": null,
"type": "/subscriptions"
}
],
"details": {
"parent": {
"displayName": "Simple-DMG-v01",
"id": "/providers/Microsoft.Management/managementGroups/Simple-DMG-v01",
"name": "Simple-DMG-v01"
},
"updatedBy": null,
"updatedTime": "0001-01-01T00:00:00",
"version": 0.0
},
"displayName": "Simple-NonProduction-EMG-v01",
"id": "/providers/Microsoft.Management/managementGroups/Simple-NonProduction-EMG-v01",
"name": "Simple-NonProduction-EMG-v01",
"roles": null,
"tenantId": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"type": "/providers/Microsoft.Management/managementGroups"
}
我运行以下命令,但没有输出。
az account management-group show --name "Simple-NonProduction-EMG-v01" -e -r --query [].[children]
az account management-group show --name "Simple-NonProduction-EMG-v01" -e -r --query [].[children.children.name]
az account management-group show --name "Simple-NonProduction-EMG-v01" -e -r --query [].[children.children]
我不明白
- 为什么我没有得到输出。
- 何时使用方括号与何时使用单引号。
以下命令也没有输出:
az account management-group show --name "Simple-NonProduction-EMG-v01" -e -r --query 'children.children.name'
使用单引号的参考: https ://docs.microsoft.com/en-us/cli/azure/query-azure-cli?view=azure-cli-latest
使用方括号的参考: https ://adamraffe.com/azure/2017/11/22/the-wonderful-world-of-azure-cli-jmespath-queries/
我会很感激你的意见。
谢谢
解决方案
尝试这样做:
az account management-group show --name "Simple-NonProduction-EMG-v01" -e -r --query `children`
像这样:
az account management-group show --name "Simple-NonProduction-EMG-v01" -e -r --query 'children[].name'
推荐阅读
- python - AttributeError:模块 'squarify' 没有属性 'plot'
- android - 将 html 文件注入或加载到 TWA/自定义选项卡中
- laravel - Laravel Eloquent 关系数据检索
- javascript - Javascript/Angular:小辅助函数的放置位置
- bash - 更正 mrtg cfgmaker 文件
- c++ - 客户端和服务器的 vsomeip 配置文件
- javascript - pm2 无法正常启动
- visual-studio-code - VSCode 任务栏图标 - 显示一个空白的白色文件图标
- python - 从数据框中提取单个行
- html - 在桌面和移动设备 css 上使用 word-space 定位文本