jq中输入的json文件大小限制是什么?

问题描述 投票:0回答:1

是否有jq处理的最大json文件大小。我从github源码构建jq 1.6。

我已尝试处理288MB的json文件(在以下命令中,handwriting_data_info1.json),并收到以下错误:

$ jq 'INDEX(.images[]; .id) as $imgs | { "filename_with_label" :
                [ .annotations[] |
                 select(.attributes.type=="letter" ) |
                 $imgs[.image_id] + {label:.text} |
                {id:.id} + {filename:.file_name} + {label:.label}
                ]
                }' handwriting_data_info1.json > handwriting_data_info1_with_label.json

jq: src/jv.c:1261: jvp_object_get_slot: Assertion `slot == -1 || (slot >= 0 && slot < jvp_object_size(object))' failed.
Aborted (core dumped)

FYI,上面使用的jq过滤器定义对于较小的json文件非常有效。

我认为jq的最大输入json文件大小。如果是这样,有没有办法增加jq的输入json文件大小?

感谢您的阅读。

input max size jq
1个回答
0
投票
  1. jq可以处理任意长的JSON流,只要流中的每个JSON项都适合内存。

  2. 对于太大而无法容纳到内存中的JSON实体,jq提供了所谓的“流解析器”,它在内存方面很经济,但速度明显较慢,使用起来有些困难。流分析器通过--stream命令行选项启用;有关流解析器的更多信息,请参见jq手册和jq FAQ。

除了RAM施加的上述限制之外,我不知道对JSON输入的大小施加任何其他限制,而且我已经看到jq处理每个数千兆字节的单个JSON实体。

© www.soinside.com 2019 - 2024. All rights reserved.