高效地将数百万个JSON文件添加到一个文件中

2024-10-03 02:32:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有数百万个json文件,需要将它们作为json dict列表附加到单个json文件中:

每个json文件包含以下dict:

{
  "finent": "abc",
  "findeplabel": "lbl",
}

应作为dict列表合并到单个json文件中:

^{pr2}$

使用“cat”命令等的问题是,输入文件数量庞大,最终文件大小可能大于8GB。在

无效版本:cat *.json|replace "}\n{" "},{" 那么,合并json文件的最有效方法是什么?最好是并发合并以提高效率?在


Tags: 文件方法命令版本json列表数量dict
3条回答

以下脚本(嘘嘘)举例说明使用bash的直接方法。 根据如何指定相关的JSON文件,可以很容易地对其进行修改。在

我怀疑开发和测试一个更复杂的解决方案比这样做可以节省执行时间要长得多,但是如果您想尝试并行性,您可能需要考虑使用GNU parallel命令。在

我已经使用100000个琐碎的.json文件对脚本进行了测试和基准测试 在一个目录中。在我6岁的电脑上,下面的调用大约需要8分钟(挂钟时间), 其中jq调用大约需要0.2秒。在

$ ./slurp.sh | jq length
100000

剧本:

^{pr2}$

我不能说它的效率,但对于jq来说,它只是一个将所有文件都拖在一起的问题:

jq -s '.' *.json

我找到了一个非常有效的方法:

 ls |xargs -n 10000 -P 8 jq -s '.' >>../jsonparsed

这将产生8个并发进程,每个进程都有10k个参数,并写入一个jsonfile jsonparsed

相关问题 更多 >