You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用jq将Azure成本管理JSON输出转换为指定表格格式?

解决Azure Cost Management JSON转指定列表格的jq命令

基础TSV格式输出(适合导入工具)

如果需要生成制表符分隔的纯文本表格,直接用以下jq命令:

.properties | 
( .columns | map(.name) | index("UsageDate"), index("Cost") ) as [$dateIdx, $costIdx] |
[["UsageDate", "Cost"]] + [.rows[] | [.[$dateIdx], .[$costIdx]]] |
@tsv

美观对齐的表格格式(适合直接查看)

如果要生成带分隔线、列对齐的可读表格,用这个命令:

.properties | 
( .columns | map(.name) | index("UsageDate"), index("Cost") ) as [$dateIdx, $costIdx] |
( [["UsageDate", "Cost"]] + [.rows[] | [.[$dateIdx], .[$costIdx]]] ) as $table |
$table | transpose | map(max_by(length) | length) as $widths |
$table | map(
    zip($widths) | map("\(.[0])\( " * ($widths[index(.)] - length) )") | join(" | ")
) |
(.[0], (["-" * w for w in $widths] | join("-|-")), .[1:]) |
join("\n")

命令说明

  1. 定位索引:先从columns中找到"UsageDate"和"Cost"的位置,确保不管字段顺序如何都能准确提取对应数据。
  2. 构造表格数据:将表头和提取后的行数据组合成结构化的二维数组。
  3. 格式化输出:要么用@tsv生成标准可导入的表格格式,要么计算列宽生成对齐的可读表格。

原命令问题说明

你之前用的.properties | (.columns[].name, .rows[])只是将所有列名和行数据平铺输出,没有关联列与对应数据,也没有筛选指定列,所以无法得到结构化的表格。

内容的提问来源于stack exchange,提问作者DevOpsWorld

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 08:20:06