Eu estou tentando recuperar os nomes das pessoas do meu arquivo. O tamanho do arquivo é 201GB
import json
with open("D:/dns.json", "r") as fh:
for l in fh:
d = json.loads(l)
print(d["name"])
Sempre que tento executar este programa no windows, me deparo com um erro de memória, que diz memória insuficiente.
Existe uma maneira confiável de analisar uma única chave, par de valores sem carregar o arquivo inteiro? Eu li o arquivo em pedaços, mas não sei como começar.
Aqui é amostra: test.json
Cada linha é separada pela nova linha. Espero que isto ajude.
Respostas:
1 para resposta № 1Você pode querer dar ijson
uma tentativa : https://pypi.python.org/pypi/ijson
0 para resposta № 2
Infelizmente não há garantia de que cadalinha de um arquivo JSON fará algum sentido para o analisador por conta própria. Temo que o JSON nunca tenha sido destinado à troca de dados em vários gigabytes, precisamente porque cada arquivo JSON contém uma estrutura de dados integral. No mundo XML, as pessoas têm escrito analisadores orientados a eventos incrementais (baseados em SAX). tal biblioteca para JSON.