У меня есть кусок кода, он обрабатывает тысячи файлов в каталоге, для каждого файла он генерирует объект (словарь) с частью значения ключа как:
{
........
'result': [...a very long list...]
}
, если яобработайте все файлы, сохраните результат в списке, затем используйте библиотеку jsonlines, чтобы записать все, на моем ноутбуке (mac) не хватит памяти.
Так что мое решение будет обрабатываться один за другим и получать результат, затемвставьте в файл jsonline и удалите объект и освободите память.
После проверки официального документа: https://jsonlines.readthedocs.io/en/latest/
Я не смог найти метод, который может писать без перезаписи файла jsonline.
Итак, как мне справиться с таким большим выводом.
Кроме того, я использую параллельные потоки для обработки результата:
from multiprocessing.dummy import Pool
Pool(4).map(get_result, file_lst)
Я надеюсь открыть json_file,запишите каждый результат, а затем освободите память.