J'ai les données comme ci-dessous
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'}]
Et j'ai besoin d'envoyer les données ci-dessus à l'API dans le format ci-dessous.
{'users': [
{'user_id': '1', 'status': 'ready'},
{'user_id': '2', 'status': 'ready'},
{'user_id': '3', 'status': 'ready'},
{'user_id': '4', 'status': 'ready'}
]}
J'ai écrit le code ci-dessous, puisque le numéro de lot est nécessaire pour l'url, j'ai d'abord considéré que dans le cadre de données et de la baisse dans le code ci-dessous.
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)
Pour traiter 500 utilisateurs vers l'API, cela a pris 15 minutes et le statut de tous les utilisateurs n'a pas été changé en "prêt". Pour chaque utilisateur, le statut devrait être envoyé avec le statut "prêt".
Quelqu'un peut-il m'aider sur ce point et aussi comment améliorer les performances de la partie codage (j'ai commenté la réponse et vérifié le temps d'exécution). C'est plus rapide et il semble que l'API elle-même prenne du temps pour répondre à chaque utilisateur).
Merci pour votre aide.