gpt4 book ai didi

ruby - 在 Ruby 中读取大型 JSON 文件时出现问题

转载 作者:数据小太阳 更新时间:2023-10-29 09:01:10 24 4
gpt4 key购买 nike

我在用 Ruby 读取大型 JSON 文件 (2.9GB) 时遇到问题。我正在使用这段代码

json_file = File.read(filename)
results = JSON.parse(json_file)

当我尝试读取文件时出现错误:

Errno::EINVAL: Invalid argument - <filename>

我用较小的文件测试了相同的代码,它工作正常。为了验证文件是否正确写入,我尝试用 python 读取它并且它有效。

JSON.parse 的文件大小有限制吗?如果是这样,你能推荐一个替代方案吗?

我查看了 msgpack 以减小文件的大小,但不幸的是我无法安装 gems。

最佳答案

这是 IO.read 的限制。

您可以将您的文件分成更小的部分(例如,1 GB)并分别阅读:

dirname = File.dirname(filename)
`split -b 1024m #{filename} #{filename}.parts.`
Dir.chdir(dirname)
parts = Dir["#{filename}.parts.*"]
json = ''
parts.each do |partname|
json += File.read(partname)
File.delete(partname)
end
results = JSON.parse(json)

请耐心等待,这可能需要一段时间。

关于ruby - 在 Ruby 中读取大型 JSON 文件时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35420337/

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