Es sei denn, einige Mühe in die Herstellung einer intelligenteren JSON-Parser investiert wird, kann folgende Arbeiten: Es gibt eine gute Chance file.json
viele Linien. In diesem Fall könnte das Lesen der Datei und das syntaktische Parsen eines großen sich wiederholenden JSON-Abschnitts Zeile für Zeile oder Stück für Stück (für die rechte Stücklänge) den Trick bewirken. Eine Möglichkeit, dies zu codieren, wäre:
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
Es gibt eine gute Chance, das ist eine vorübergehende Notlösung für Ihr Problem sein könnte. Überprüfen Sie file.json
, um herauszufinden.
Verwenden Sie einen Pull-Parser (im Gegensatz zu Push-Parser). Analysiere es nicht nur, sondern bearbeite es sofort, du willst die ganze> 400M JSON Datei nicht im Speicher haben. –