【问题标题】:Using data from a GET request to process a PUT request in same Python script使用 GET 请求中的数据在同一 Python 脚本中处理 PUT 请求
【发布时间】:2017-04-04 04:59:14
【问题描述】:

我之前尝试过问类似的问题,但现在我意识到我不够具体。我对 Python 相当陌生,但我熟悉使用 requests 库来处理 GET 请求。我正在尝试设置一个脚本,允许我通过循环处理多个 GET 请求(使用请求库)。然后,我需要使用从这些 GET 请求中收集的信息来处理几个 PUT 请求(可能带有第二个循环),其中我正在更改特定字段的值。例如,这是我从我的一个 get 请求中收到的:

{
"member": {
    "id": 12233444,
    "code": null,
    "code2": null,
    "code3": null,
    "state": "active",
    "cost_quarter": null,
    "master_id": 818667,
    "timeout_period": 2000,
    "enable_for_change": true,
    "is_prohibited": false,
    "site_id": 5544,
}}

然后,我需要为这些 GET 请求中的每一个处理一个 PUT 请求,以将“timeout_period”更改为“5000”。对于每个成员,我的 PUT 请求将如下所示:

{
"member": {
    "id": 12233444,
    "code": null,
    "code2": null,
    "code3": null,
    "state": "active",
    "cost_quarter": null,
    "master_id": 818667,
    "timeout_period": 5000,
    "enable_for_change": true,
    "is_prohibited": false,
    "site_id": 5544,
}}

我不太确定我怎么能做到这一点;有没有办法处理多个 GET 请求(通过循环),将该信息保存在某处,然后使用它来处理 PUT 请求(针对每个成员)以及修改后的信息?

任何帮助将不胜感激。谢谢。

【问题讨论】:

  • 那么你想在使用第二个代码 sn-p 作为请求的 JSON 正文的同时向服务器发送 PUT 请求吗?
  • 不抱歉,需要明确的是,我需要向端点发出多个 GET 请求,然后使用从这些 GET 请求中获得的数据来处理相同成员的 PUT 请求。原因是,“成员”数据可能并不总是相同的,因此当我处理 PUT 请求时,这些成员中的每一个的结构都必须是完整的。我只需要更改一个在此示例中为“timeout_period”的单个字段值。
  • 我要问的是“你如何处理 PUT 请求”。它看起来像 JSON 格式的数据。如果我理解正确,首先 sn-p(time_period 是 2000)由 GET 请求返回。而且您想修改 time_period 的值,然后发送 PUT 请求,同时将该数据用作请求的 JSON 正文,对吗?
  • 我会为我的 GET 请求和 PUT 请求使用相同的端点。我正在使用 GET 来获取 MEMBER 数据。我想为我的 PUT 请求使用相同的数据(稍作修改)。
  • 是的,我理解您的意思,但仍然对您如何发送数据感到好奇。 JSON 正文?只是纯文本正文?

标签: python python-2.7 loops python-requests


【解决方案1】:
import requests

r = requests.get(...).json()
r['time_period'] = 5000

requests.put(..., json=r)

使用这个方法。

【讨论】:

  • 好的,非常感谢。从这里开始,如果我想处理几个“成员”,我应该设置一个 for 循环吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-06
  • 2014-08-26
  • 2017-10-21
  • 1970-01-01
  • 2021-06-01
相关资源
最近更新 更多