从大型JSON文档中高效选择大量已知ID *警告回答原始问题*警告

问题描述

我正在尝试通过bash中的jq从json中获取一些值。较小的值可以很好地工作,而较大的json则工作太慢,例如每2-3秒1个值。我的代码示例:

json=$(curl -s -A "some useragent"  "url" )
pid=$(cat idlist.json |  jq '.page_ids[]')
for id in $pid
do
echo $pagejson|jq -r '.page[]|select(.id=='$id')|.url'>>path.url
done

“ pid”是我在运行脚本之前键入的ID的列表。它可能包含700-1000个ID。 json的示例对象

{
"page":[
{
"url":"some url","id":some numbers
},{

"url":"some url","id":some numbers
}
]
}

有什么办法可以加快速度吗?在javascript中,它的工作速度比它快。 javascript范例:

//First sort object with order
var url="";
var sortedjson= ids.map(id => obj.find(page => page.id === id));
//Then collect url
for ( x=0 ; x < sortedjson.length;x++) {
url+=sortedjson[x].url
};

我应该像在javascript中那样对json进行排序以获得更好的性能吗?我不尝试,因为不知道。

编辑: 用json替换了“ pid”变量以使用更少的代码,用for id in $(echo $pid)替换了for id in $pid。 但是,如果ID列表超过50个,它仍然会变慢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)