У меня очень большой список, скажем, 10000 с, и я пытаюсь проверить, присутствует ли ключ в json, если нет, я должен добавить его.Вот пример кода:
with open('filename', 'rt') as f:
data_obj = json.loads(f.read())
for item in items:
try:
key = data[item.lower()]
#<my code>
except Exception as e:
data = item
with open('filename', 'w') as outfile: # have to create a data.json file
json.dump(data, outfile)
У меня есть 2 проблемы,
- Сама итерация занимает столько времени.
- Операция записи требует дополнительного времени.
Короче говоря, получение ответа на 900 пунктов списка занимает несколько минут.Я хотел бы использовать многопроцессорность здесь.
Я использую следующий пример кода для его реализации,
def try_multiple_operations(items):
for item in items:
try:
api.my_operation(item)
except:
print('error with item')
executor = concurrent.futures.ProcessPoolExecutor(10)
futures = [executor.submit(try_multiple_operations, group)
for group in grouper(5, items)]
concurrent.futures.wait(futures)
, но try_multiple_operations
принимает только один аргумент, но в моем случае яиметь более 2 аргументов.как я должен использовать многопроцессорность для нужд?