【发布时间】:2016-10-13 15:21:55
【问题描述】:
我有数百万个 json 文件,我需要将它们作为 json dicts 列表附加到单个 json 文件中:
每个 json 文件都包含以下 dict:
{
"finent": "abc",
"findeplabel": "lbl",
}
应该合并成一个 json 文件作为字典列表:
[{
"finent": "abc",
"findeplabel": "lbl",
},
{
"finent": "abc",
"findeplabel": "lbl",
}...]
使用“cat”命令等的问题是输入文件数量巨大,最终文件大小可能>8GB。
低效版本:cat *.json|replace "}\n{" "},{"
那么,为了提高效率,理想地同时合并 json 文件的最有效方法是什么?
【问题讨论】:
-
为什么叫
cat效率低?在您看来,它在这里执行的操作的哪些部分(在另一个文件末尾连接一个文件)可以更有效地完成? (另外:为什么是 Python 标签?) -
@RadLexus 处于较低级别,只是连接文件而不将其复制到新文件描述符
-
还有在发射每个文件输出后添加逗号“,”的操作,可以更有效的节省后面的pass。
-
replace是一个用于替换字符串的python程序
-
“进入较低级别,只是连接文件而不将其复制到新的文件描述符中” Unix 内核所说的“低级别”甚至是什么?我根本不知道那会如何工作。当整个操作是 IO 绑定时,并发是相当没有意义的。
标签: python json jq large-data