![获取jq中JSON[]数组的值](https://linux22.com/image/202593/%E8%8E%B7%E5%8F%96jq%E4%B8%ADJSON%5B%5D%E6%95%B0%E7%BB%84%E7%9A%84%E5%80%BC.png)
如何使用 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
这将选择所有以给定键作为第一个元素的数组条目,然后从所选的每个部分中提取值(最后一个元素)。