Az CLI 查询未正确显示所有列

Az CLI query not displaying all columns properly

我有运行命令

az account list locations --output table

它向我显示了三列,其中包含值:DisplayNameNameRegionalDisplayName.
现在我只想查看两列,例如 NameRegionalDisplayName。所以我 运行 屏幕截图中附加的命令只显示一列。知道用查询命令显示两列的正确方法是什么吗?

请尝试类似的操作:

az account list-locations --output table  --query '[].{Name:name,DisplayName:displayName}'

这是我 运行 上述命令时得到的(部分)输出:

Name                DisplayName
------------------  --------------------
eastasia            East Asia
southeastasia       Southeast Asia
centralus           Central US
eastus              East US
eastus2             East US 2
westus              West US
northcentralus      North Central US
southcentralus      South Central US

我使用的是 az CLI 2.8 版。

在 JMESPath 中,当使用 filters and multiselect hashes 时,您正在以 key/value 的方式重新创建 JSON objects。

所以当你在做类似

的事情时
[*].{foo: bar}

那么,foo 就是您的新密钥,您可以随心所欲。
bar 是一个值,如果不在引号内,它应该是源 JSON.

中的现有值

因此,在您的情况下,您只是颠倒了应该是键和值的内容,因为您在源 JSON 中有一个键 Name 和一个键 RegionalDisplayName

所以你必须做:

az account list-locations --query "[].{name: name, region: regionalDisplayName}" --output table

为了让两列包含您期望的内容,标题分别为 nameregion

基本上,您查询中唯一的错误是“区分大小写的名称” 当您尝试查询 JSON 输出时,在 --query 参数中我们应该提供 Json 数组值名称的确切名称。

您的完整查询将是(请参阅 name 而不是 NameregionalDisplayName

az account list-locations --query "[].{name: name, region: regionalDisplayName}" --output table

有关更多信息,请查看此处发布的答案和详细说明。 https://docs.microsoft.com/en-us/answers/questions/302069/az-cli-not-showing-correct-output.html?childToView=302127#answer-302127