У меня проблема с созданием. json -файлов через функцию, а также с многопроцессорной обработкой через модуль concurrent.futures в Python.
Мой код выглядит так:
import json, concurrent.futures
iterable_list = [string1, string2, string3, string4, ...]
def lovely_function(arg):
with open(string1+'.json', 'w') as write_file:
print('opening',string1,'.json file.')
...loop through stuff and create a dictionary...
print('closing',string1,'.json file.')
json.dump(dictionary,write_file)
with concurrent.futures.ProcessPoolExecutor() as executor:
executor.map(lovely_function, iterable_list)
Когда я запускаю скрипт в своей консоли (Ubuntu 16.something), он печатает «открытие. json» - часть для каждого элемента в моем iterable_list, но выводит только одно «закрытие. json» , Тем не менее, все. json -файлы создаются и выгружаются в мою целевую папку, но только один (тот, что с закрывающим оператором) содержит данные. Иногда я вообще не получаю "закрытия. json".
Я дважды проверил свою функцию, и она работает правильно, если вы кормите ее вручную (например, lovely_function (string1) )
Что я делаю не так? Любые советы или подсказки? Спасибо за вашу помощь!