Input jq中的输入json文件大小限制是多少?

Input jq中的输入json文件大小限制是多少?,input,max,size,jq,Input,Max,Size,Jq,jq处理的json文件是否有最大大小。我从github源代码构建JQ1.6 我尝试用以下命令笔迹_data_info1.json处理288MB json文件,但出现以下错误: $ jq 'INDEX(.images[]; .id) as $imgs | { "filename_with_label" : [ .annotations[] | select(.attributes.type=="letter" ) |

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

我尝试用以下命令笔迹_data_info1.json处理288MB 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)

仅供参考,上面使用的jq过滤器定义适用于相对较小的json文件

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

谢谢你的阅读

jq可以处理任意长的JSON流,但如果流中的任何JSON项太大而无法放入内存,则必须使用流解析器。仅当指定了-stream命令行选项时,此解析器才处于活动状态

流式解析器在内存方面比较经济,但速度明显较慢,使用起来有些困难。关于流式解析器的更多信息可以在jq手册和中找到

验证jq是否可以在不使用-stream选项的情况下管理输入的一种方法是运行空筛选器,例如:

jq empty INPUT.json

发布的错误是断言错误;此类错误通常与输入实体的大小无关。但是,如果jq程序试图生成不适合内存的大型结构,则可能会生成此类错误

除了RAM施加的上述限制外,我不知道对JSON输入大小施加了任何其他限制,我还看到jq处理每个数GB的单个JSON实体。

@peak再次感谢您的回复。jq empty手写体_data_info1.json工作时没有任何警告或错误。当我运行发布的jq过滤器时,系统管理员正在使用sudoapt升级进行系统升级。升级后,发布的相同jq命令不会产生错误消息。它可能会更新一些与jq命令相关的库。使用jq empty INPUT.json命令检查jq是否可以处理输入文件非常有用。