通过 PUT 请求更新数据

Data update though PUT request

我正在将以下数据(示例数据)处理到 API 但是在发送此数据时,我想将状态从 'ready' 更新到 'done' 因为下次它运行,这些收件人应该被排除在外,新的收件人将以 'ready' 状态可用。

data = [{'lot_number': 'a53f-8fb40cabab7e',
'recipients':
[{'status': 'ready', 'account': '1001'}, 
 {'status': 'ready', 'account': '1002'}]}, 

{'lot_number': 'ad3d-a0849d5c7c7a',
'recipients':
[{'status': 'ready', 'account': '1015'}, 
 {'status': 'ready', 'account': '1019'}, 
 {'status': 'ready', 'account': '1023'}]}]


for final_data in data:
    batch = final_data.get("lot_number")
    url = "https://ext-api-support-dev.llws.com/api/notify/"+ batch
    response = requests.put(url, data=json.dumps(final_data), headers=headers)

以上代码运行良好并成功发送响应。现在我们正在处理三个字段(lot_number、recipients.status、recipients.account),但我只需要处理 recipients.status、recipients.account 和 recipients.status 应该更新为 'done'.

例如,假设我们有 100 批数据,每批有 50 个收件人,我想在每个循环中将状态更新为 'done'。即使响应在过程中失败(处理了 20 批次但失败了),我还是想更新所有已处理批次(前 20 批次)的状态。

既然我们可以使用put更新数据,那么我们是否可以在response和process中对data=json.dumps(final_data)做任何更改?

提前感谢您的帮助。

你可以关注这个:

done_lots = list()
url = "https://ext-api-support-dev.llws.com/api/notify/{0}"
for final_data in data:
    batch = final_data.get("lot_number")
    # Remove the lot_number
    request_data = {k: v for (k, v) in final_data.items() if k != "lot_number"}
    response = requests.put(url.format(batch), data=json.dumps(request_data), headers=headers)
    # Loop over recipients and update status
    # THIS DOES NOT UPDATE TO THE DATABASE. IT ONLY UPDATES THE final_data variable
    for recipients in final_data.get("recipients"):
        recipients["status"] = "done"
    done_lots.append(final_data)