У меня есть данные, как показано ниже
print(json_ls)
[{'user_id': '1', 'lot_number': 'b49d18f1b', 'status': 'send'},
{'user_id': '2', 'lot_number': 'b49d18f1c', 'status': 'send'},
{'user_id': '3', 'lot_number': 'b49d18f1d', 'status': 'send'},
{'user_id': '4', 'lot_number': 'b49d18f1e', 'status': 'send'}]
И мне нужно отправить вышеуказанные данные в API в формате ниже
{'users': [
{'user_id': '1', 'status': 'ready'},
{'user_id': '2', 'status': 'ready'},
{'user_id': '3', 'status': 'ready'},
{'user_id': '4', 'status': 'ready'}
]}
Я написал код ниже, так как номер лотанеобходимо для URL, я изначально учел, что во фрейме данных и в приведенном ниже коде.
final_data = {'users': []}
for ls in json_ls:
lot = ls.get("lot_number")
url = url + lotnumber
request_data = {a: b for (a, b) in ls.items() if a != "lot_number"}
final_data['users'].append(request_data)
for users in final_data.get("recipients"):
users["status"] = "ready"
response = requests.patch(url, data=json.dumps(final_data), headers=headers)
Для обработки 500 пользователей в API, потребовалось 15 минут времени, а также не все пользовательские статусы, измененные на "готовы". Для каждого пользователя статус должен быть отправлен со статусом «готов».
Может ли кто-нибудь помочь мне в этом, а также как улучшить производительность от части кода (я прокомментировал ответ и проверил время выполнения. Это быстрее иСам API шва требует времени для ответа каждого пользователя)
Спасибо за вашу помощь.