Python: torne um gerador de lista JSON serializável
Como concatenar uma lista de arquivos JSON em uma enorme matriz JSON? Tenho 5000 arquivos e 550 000 itens de lista.
Minha primeira tentativa foi usarjq, mas parece que jq -s não é otimizado para uma entrada grande.
jq -s -r '[.[][]]' *.js
Este comando funciona, mas leva muito tempo para ser concluído e eu realmente gostaria de resolver isso com o Python.
Aqui está meu código atual:
def concatFiles(outName, inFileNames):
def listGenerator():
for inName in inFileNames:
with open(inName, 'r') as f:
for item in json.load(f):
yield item
with open(outName, 'w') as f:
json.dump(listGenerator(), f)
Estou entendendo:
TypeError: <generator object listGenerator at 0x7f94dc2eb3c0> is not JSON serializable
Qualquer tentativa de carregar todos os arquivos no ram acionará o OOM-killer do Linux. Você tem alguma ideia?