在Julia中读取并解析> 400MB .json文件而不会崩溃内核

时间:2015-12-26 17:19:38

标签: json julia

以下是崩溃我的Julia内核。有没有更好的方法来读取和解析一个大的(> 400 MB)JSON文件?

using JSON
data = JSON.parsefile("file.json") 

1 个答案:

答案 0 :(得分:2)

除非投入一些精力来制作更智能的JSON解析器,否则以下内容可能会有效:file.json有很多行。在这种情况下,读取文件并逐行解析一个大的重复JSON部分或逐个chunk解析(对于正确的块长度)可以解决问题。对此进行编码的可能方法是:

using JSON
f = open("file.json","r")

discard_lines = 12      # lines up to repetitive part
important_chunks = 1000 # number of data items
chunk_length = 2        # each data item has a 2-line JSON chunk

for i=1:discard_lines
    l = readline(f)
end
for i=1:important_chunks
    chunk = join([readline(f) for j=1:chunk_length])
    push!(thedata,JSON.parse(chunk))
end
close(f)
# use thedata

这很有可能成为您问题的临时权宜之计。检查file.json以找出答案。