gpt4 book ai didi

ruby - 如何漂亮地打印一个 48 GB 的 JSON? (维基数据)

转载 作者:太空宇宙 更新时间:2023-11-03 17:47:45 25 4
gpt4 key购买 nike

我正在使用 WikiData(多个数据源的交叉引用,包括维基百科),它们提供了一个 ~50 GB 的 JSON 文件,没有空格。我想从中提取某些类型的数据,如果打印得很好,我可以用 grep 来完成。我在 mac 上运行。

一些重新格式化的方法,例如,

 cat ... | python -m json.too
./jq . filename.json

不适用于大文件。 python 窒息。 jq 死了。这里有一个很棒的线程:How can I pretty-print JSON in (unix) shell script?但我不确定如何/是否可以处理大文件。

这家公司使用“Akka 流”来完成这项任务(他们声称处理所有维基数据不到 10 分钟),但我对此一无所知:http://engineering.intenthq.com/2015/06/wikidata-akka-streams/

Wikidata 有一个可预测的格式 ( https://www.mediawiki.org/wiki/Wikibase/DataModel/JSON ),我可以通过一系列 sedtr 来完成我的大部分目标,但它是笨拙且可能容易出错,我更愿意在 prettyprint 上搜索。

有什么建议吗?

最佳答案

有几个用于解析 JSON 流的库,我认为这就是您想要的——您可以通过管道将 JSON 传入并将其作为流处理,这样您就不必将整个东西加载到内存中。

Oboe.js看起来是一个特别成熟的项目,文档也很好。请参阅此页面上的“从 Node.js 流读取”和“加载大于可用 RAM 的 JSON 树”部分:http://oboejs.com/examples

如果您更愿意使用 Ruby,请查看 yajl-ruby . API 不像 Oboe.js 的那么简单,但它应该适合您。

关于ruby - 如何漂亮地打印一个 48 GB 的 JSON? (维基数据),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31681501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com