通过 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)
我正在将以下数据(示例数据)处理到 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)