我正在嘗試處理一個包含數千個條目的大型 json 檔案以用于測驗目的。json 包含一長串datato 太大,我無法一次性處理。使用 jq,是否有一種簡單的方法可以獲取僅包含data串列中前幾個條目的有效 json 片段?例如,是否有一個查詢會查看整個 json 檔案并向我回傳一個僅包含前 4 個條目的有效 json data?謝謝!
{
"info":{
"name":"some-name"
},
"data":[
{...},
{...},
{...},
{...}
}
uj5u.com熱心網友回復:
根據您的代碼段,相關的 jq 將是:
.data |= .[:4]
uj5u.com熱心網友回復:
--stram這是使用該選項的示例:
$ cat input.json
{
"info": {"name": "some-name"},
"data": [
{"a":1},
{"b":2},
{"c":3},
{"d":4},
{"e":5},
{"f":6},
{"g":7}
]
}
jq --stream -n '
reduce (
inputs | select(has(1) and (.[0] | .[0] == "data" and .[1] < 4))
) as $in (
{}; .[$in[0][-1]] = $in[1]
)
' input.json
{
"a": 1,
"b": 2,
"c": 3,
"d": 4
}
注意:limit在這種情況下使用會更有效,但出于可擴展性的目的,我嘗試更通用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/439297.html
上一篇:如何將JavaScript物件轉換為物件陣列?[復制]
下一篇:typeMismatch(Swift.Array<Any>,Swift.DecodingError.Context(codingPath:[CodingKeys(stringValue:&
