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

问题描述

我已经运行了命令

az account list locations --output table

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

az account with JMESPath query

解决方法

基本上,您查询中唯一的错误是“区分大小写的名称” 当您尝试查询 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

,

请尝试以下操作:

   SELECT Orders.OrderID,Customers.CustomerName,Orders.OrderDate,Products.ProductName,Products.ProductID
    FROM Orders
    INNER JOIN Products
    INNER JOIN Customers
    ON Orders.CustomerID=Customers.CustomerID;

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

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

我使用的是 az CLI 2.8 版。

,

在 JMESPath 中,当使用 filters and multiselect hashes 时,您正在以键/值方式重新创建 JSON 对象。

所以当你做类似的事情时

[*].{foo: bar}

那么,foo 就是你的新密钥,它是你喜欢的任何东西。
并且 bar 是一个值,如果不在引号内,则应该是源 JSON 中的现有值。

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

所以你必须这样做:

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...