A meno che qualche sforzo è investito a fare un intelligente JSON parser, il seguente potrebbe funzionare: C'è una buona probabilità file.json
ha molte linee. In questo caso, leggere il file e analizzare una grande sezione ripetitiva JSON riga per riga o chunk-by-chuck (per la giusta lunghezza del chunk) potrebbe fare il trucco. Un modo possibile per codificare questo, sarebbe:
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
C'è una buona possibilità che questa potrebbe essere una soluzione temporanea per il problema. Esaminare file.json
per scoprirlo.
fonte
2015-12-26 19:29:51
Utilizzare un parser di pull (al contrario di premere parser). Non solo lo analizza ma lo elabora immediatamente, non vuoi che l'intero file> 400M JSON sia in memoria. –