Не удалось обновить словарь Python во время многопроцессорной обработки [дубликат]Python

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 Не удалось обновить словарь Python во время многопроцессорной обработки [дубликат]

Сообщение Гость »


Я в некоторой растерянности. Мои навыки Python немного устарели, но я пытаюсь параллельно обрабатывать словарь Python и обновлять словарь ответом. Словарь в настоящее время определен в скрипте и вызывает функцию, которая принимает «конечную точку» и обновляет ее с помощью «ответа». В настоящее время в вызываемой функции многопроцессорной обработки я вижу обновленный результат при печати словаря, но он не сохраняется при вызове словаря в основной функции.

Где я ошибаюсь?

из диспетчера многопроцессорного импорта, пул время импорта из случайного импорта randint # Функция API. На данный момент возвращает случайное число. защита APIResponse(x): print("Обработка {}".format(x)) СлучайныйЦелый = randint(1, 10) time.sleep(randomInteger) print("Завершено {}".format(x)) # APIEndpoints[x]["response"] = str(randomInteger) APIEndpoints[x].update({"ответ": str(randomInteger)}) # Ниже возвращается правильный обновленный словарь печать(APIEEndpoints[x]) возвращаться если __name__ == '__main__': APIEndpoints = { "базовый": { "конечная точка": "api_endpoint_basic", "ответ": "" }, "адрес": { "конечная точка": "api_endpoint_address", "ответ": "" }, "возраст": { "конечная точка": "api_endpoint_age", "ответ": "" }, "зарплата": { "endpoint": "api_endpoint_salary", "ответ": "" } } # Настраиваем пулы p = Пул(процессы=len(APIEEndpoints)) # Обрабатываем пулы параллельно p.map(APIResponse, APIEndpoints) # Распечатать вывод словаря печать (APIEndpoints) Я ожидаю, что переменная APIEndpoints будет иметь обновленный ответ в конце скрипта, но в настоящее время она показывает обновление только с помощью функции Ответ API

Спасибо за любую помощь.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»