Как я могу объединить список файлов JSON в огромный массив JSON? У меня 5000 файлов и 550 000 элементов списка.
Моя первая попытка заключалась в использовании jq, но похоже, что jq -s не оптимизирован для большого ввода.
jq -s -r '[.[][]]' *.js
Эта команда работает, но занимает слишком много времени, и я действительно хотел бы решить эту проблему с помощью Python.
Вот мой текущий код:
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)
Я получаю:
TypeError: <generator object listGenerator at 0x7f94dc2eb3c0> is not JSON serializable
Любая попытка загрузить все файлы в RAM вызовет OOM-killer Linux. У вас есть идеи?