首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jq中输入的json文件大小限制是多少?

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

Stack Overflow用户
提问于 2020-04-20 03:03:35
回答 1查看 1.4K关注 0票数 1

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

我尝试过处理288 to的json文件(在下面的命令handwriting_data_info1.json中),并得到了以下错误:

代码语言:javascript
复制
$ 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文件大小?

谢谢你的阅读。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-20 03:55:43

  1. jq可以处理任意长的JSON流,但是如果流中的任何JSON项太大,无法放入内存中,则必须使用“流解析器”。只有当指定了--stream命令行选项时,此解析器才处于活动状态。
  2. “流解析器”是节省内存,但可能是明显的缓慢和有点难以使用。关于流解析器的更多信息可以在jq手册和jq常见问题中找到。
  3. 验证jq是否可以在不使用-stream选项的情况下管理输入的一种方法是运行empty过滤器,例如: jq空INPUT.json
  4. 发布的错误是断言错误;这些错误通常与输入实体的大小无关。但是,如果jq程序试图生成不适合内存的大型结构,则可能会产生此类错误。

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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61314507

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档