【发布时间】:2021-09-04 09:01:55
【问题描述】:
我有一个json数据如下
{
"id": {
"bioguide": "E000295",
"thomas": "02283",
"govtrack": 412667,
"opensecrets": "N00035483",
"lis": "S376"
},
"bio": {
"gender": "F",
"birthday": "1970-07-01"
},
"tooldatareports": [
{
"name": "A",
"tooldata": [
{
"toolid": 12345,
"data": [
{
"time": "2021-01-01",
"value": 1
},
{
"time": "2021-01-02",
"value": 10
},
{
"time": "2021-01-03",
"value": 5
}
]
},
{
"toolid": 12346,
"data": [
{
"time": "2021-01-01",
"value": 10
},
{
"time": "2021-01-02",
"value": 100
},
{
"time": "2021-01-03",
"value": 50
}
]
}
]
}
]
}
现在我可以使用下面的命令行来获取包含两个字典的列表, 每个字典都有一个键“数据”,值是一个列表,
cat data.json |jq -n --stream '[fromstream(inputs | (.[0] | index("data")) as $ix | select($ix) | .[0] |= .[$ix:])]'
我想在 shell 脚本中用循环打印每个字典
我的 except 在每个循环中都打印了一个字典,总共有 2 个字典
但它看起来像一个字符串
下面是我的shell脚本
array=$(cat ernst.json | jq -n --stream '[fromstream(inputs | (.[0] | index("data")) as $ix | select($ix) | .[0] |= .[$ix:])]')
for d in $array
do
echo $d
done
有人知道吗?
【问题讨论】: