获取jq中JSON[]数组的值

获取jq中JSON[]数组的值

如何使用 jq 从 json 输出中获取 [key,value] 数组内部的值

[[1645128660000,0],[1645128720000,0],[1645128780000,0],[1645128840000,0],[1645128900000,0],[1645128960000,0],[1645129020000,0],[1645129080000,0],[1645129140000,0],[1645129200000,0]]

答案1

我认为对于这个内部列表来说这是相当容易实现的。这些值似乎全为零,所以......

jq  '.[][1]' < yourjsonfile

只是提供另一种方法。当使用列表、字典和其他类型时,Python 是正确的工具。为了让您了解如何从列表中检索值,您需要执行以下操作:

#!/usr/bin/env python

mylist = [[1645128660000,0],[1645128720000,0],[1645128780000,0],[1645128840000,0],[1645128900000,0],[1645128960000,0],[1645129020000,0],[1645129080000,0],[1645129140000,0],[1645129200000,0]]

for k,v in mylist:
    print("Key":,k)
    print("Value":v)

或者使用列表理解

[v for k,v in mylist]

应该足够了。还有一个很棒的页面,您可以在其中使用 jq:https://jqplay.org/#

答案2

如果我们假设输入是一个元素数组,并且每个元素看起来都[key, value]带有整数键和值,那么我们可以使用以下命令提取给定键的值:

mykey=1645128900000
jq --argjson key "$mykey" '.[] | select(first == $key) | last' file

这将选择所有以给定键作为第一个元素的数组条目,然后从所选的每个部分中提取值(最后一个元素)。

相关内容