import splitstream
from jq import jq
def slurp(filename):
with open(filename) as f:
for s in splitstream.splitfile(f, format="json"):
yield s
obj = {}
for jstr in slurp('myfile'):
obj = jq("[%s, .] | add" % obj).transform(text=jstr, text_output=True)
print obj
如果您正在使用python读取myfile,^{} 模块described here可能是您想要的。下面是一个测试示例(测试.py)它使用jq.py。在
这是一个运行示例
^{pr2}$尽管这似乎满足了您要求使用jq.py的要求,但我认为这不是一个好的解决方案,因为在python和jq之间共享状态既笨拙又低效。在
一个更好的方法可能是使用jq作为子流程。下面是一个示例(test2.py):
样本运行:
这将产生所需的输出。在
jq -nc '[inputs] | add'
我不能说它是否能和jq.py公司然而。在
与使用[输入]相比,对内存的要求更低的是:
上面假设-n命令行选项有效。如果这在py.jq公司,则应改用以下过滤器:
^{pr2}$p.s。 也许是作者py.jq公司如果知道的话,愿意解决与命令行选项有关的问题吗?在
相关问题 更多 >
编程相关推荐