我要请求 jb 的插件市场所有插件的信息,每条信息都是 json 格式。
我想用一个plugins.json
文件去承载这些数据。
{
"plugins": []
}
我不知道 jb 有什么风控策略,所以想要每次请求一条数据就保存下来,但是不知道 json 文件怎么热更新(主要插件一多,每次都重新把字符串写进去的话,效率太低了)。
难道需要保存成一个个 json 文件,然后再整合起来吗?
我要请求 jb 的插件市场所有插件的信息,每条信息都是 json 格式。
我想用一个plugins.json
文件去承载这些数据。
{
"plugins": []
}
我不知道 jb 有什么风控策略,所以想要每次请求一条数据就保存下来,但是不知道 json 文件怎么热更新(主要插件一多,每次都重新把字符串写进去的话,效率太低了)。
难道需要保存成一个个 json 文件,然后再整合起来吗?
你的更新策略是什么
每次请求到一个插件的json数据,然后push到plugins列表中
难道要自己拼json字符串?
一次采集全部,后续对比更新时间,拿最新的加入到json内
但是我不知道 jb 有什么策略,访问频率还是什么,我不想出错了正常的数据却没保存下来。
他家我熟,没策略的。
https://plugins.jetbrains.com/api/plugins/21234
用这种接口,id使劲增,一条保存一次总没问题吧
嗯嗯,没有问题的,就是如果不停的写入全量json字符串,随着数据的增多,每次的io开销会很大。现在是在每次把新请求的数据加上一个逗号热更新写入文件中。最后再去掉最后的逗号,外面套上中括号,手动拼个json字符串 。不知道如何在文件中如何能像json对象那样,直接往列表里面push就能更新数据。主要是为了防止中途出现错误,已经请求到的数据没来得及持久化的问题
你先搞个东西临时记录嘛(sqllie,或者txt都行),最后再保存为json
用 jq就可以了啊
jq 可以实时持久化json吗?
确实感觉json不适合实时持久化,我还是换其他方案吧,txt或者sqlite
jq 只能在管道里解析 json
那没啥用哦,我是想每次请求获取数据并实时持久化到本地,跟日志配合的话就可以知道哪些没有获取成功或者在哪里中断出错。不知道有没有python spider里面有没有成熟的方案。还要 jb 插件页没有风控,获取插件数据还是比较顺利的。
From #dev to 开发调优
#快问快答添加