求指导 json 文件数据热更新

我要请求 jb 的插件市场所有插件的信息,每条信息都是 json 格式。
我想用一个plugins.json文件去承载这些数据。

{
  "plugins": []
}

我不知道 jb 有什么风控策略,所以想要每次请求一条数据就保存下来,但是不知道 json 文件怎么热更新(主要插件一多,每次都重新把字符串写进去的话,效率太低了)。

难道需要保存成一个个 json 文件,然后再整合起来吗?

2 个赞

你的更新策略是什么

每次请求到一个插件的json数据,然后push到plugins列表中

难道要自己拼json字符串?

35 个赞

一次采集全部,后续对比更新时间,拿最新的加入到json内

但是我不知道 jb 有什么策略,访问频率还是什么,我不想出错了正常的数据却没保存下来。

34 个赞

他家我熟,没策略的。

5 个赞

:partying_face: :kissing_heart:

34 个赞

https://plugins.jetbrains.com/api/plugins/21234
用这种接口,id使劲增,一条保存一次总没问题吧

1 个赞

嗯嗯,没有问题的,就是如果不停的写入全量json字符串,随着数据的增多,每次的io开销会很大。现在是在每次把新请求的数据加上一个逗号热更新写入文件中。最后再去掉最后的逗号,外面套上中括号,手动拼个json字符串 :rofl:。不知道如何在文件中如何能像json对象那样,直接往列表里面push就能更新数据。主要是为了防止中途出现错误,已经请求到的数据没来得及持久化的问题

29 个赞

你先搞个东西临时记录嘛(sqllie,或者txt都行),最后再保存为json

1 个赞

爬完了,嘿嘿

26 个赞

用 jq就可以了啊

jq 可以实时持久化json吗?

26 个赞

确实感觉json不适合实时持久化,我还是换其他方案吧,txt或者sqlite

26 个赞

jq 只能在管道里解析 json

那没啥用哦,我是想每次请求获取数据并实时持久化到本地,跟日志配合的话就可以知道哪些没有获取成功或者在哪里中断出错。不知道有没有python spider里面有没有成熟的方案。还要 jb 插件页没有风控,获取插件数据还是比较顺利的。

26 个赞

From #dev to 开发调优

#快问快答添加

1 个赞