如何使用az --query命令列出所有json字段,但不列出其值?例如。 AZ帐户列表--query <something>

时间:2019-11-10 17:46:05

标签: azure jmespath azure-cloud-shell

我正在寻找一种'az'--query语法,该语法仅列出json字段而不是其值。

这将打印一个表格:

az account list --query [*] -o --table

Name    State  IsDefault  TenantId    CloudName

----    -----  ---------  --------    ---------

bob     Enabled True       nnn        AzureCloud

但是我不想要列名下的值,我只想要列名的列表。

1 个答案:

答案 0 :(得分:0)

上下文

  • MSFT Azure云外壳控制台(截至2019-11-17)
  • 带有查询的Azure云外壳az命令

问题

  • User_broglock希望查询从云外壳az account list命令的输出结果中返回字段名称(而不是字段值)

解决方案

  • 完整命令
az account list --query '@|[0]|keys(@)|[*].{"FieldName":@}' --output table
  • 演示结果
FieldName
-----------
id
name
state
user
isDefault
tenantId
cloudName

说明

  • Azure CLI使用--query参数来执行JMESPath查询
  • JMESPath支持keys()函数,该函数返回JSON名称/值对对象(又名dictionary)(又名associative array)中的名字
  • keys()提取后,我们将结果作为一个名称/值对列表返回:{"Fieldname":<CurrentItemFromList>} ...这实际上为我们提供了一个只有一列的表。

Diagramuu0283bluhoyaz-001aa

另请参见