我试图解析一个有600万行的JSON
文件。哪个是这样的:
temp.json
{
"bbc.com": {
"Reputation": "2.1",
"Rank": "448",
"Category": [
"News"
]
},
"amazon.com": {
"Reputation": "2.1",
"Rank": "448",
"Category": [
"Shopping"
]
}
}
我知道如何解析" Keys"单独。获得" Keys"这个JSON
结构,我
试过,
jq -r 'keys[]' temp.json
结果:
amazon.com
bbc.com
获得"类别"在上面的JSON文件中。我试过了,
jq -r '.[].Category[]' temp.json
结果:
Shopping
News
如何获得" Keys" "类别"只有"购物"?
答案 0 :(得分:5)
使用to_entries
功能,如下所示:
jq -r 'to_entries[] | select(.value.Category | index("Shopping") != null) | .key'
答案 1 :(得分:5)
在这种特殊情况下,可以避免to_entries
及其开销,同时仍然可以提供简洁明了的解决方案:
keys[] as $k | select( .[$k].Category | index("Shopping") != null) | $k