【问题标题】:How to delete or modify an element from a retrieved JSON API call?如何从检索到的 JSON API 调用中删除或修改元素?
【发布时间】:2020-06-09 13:28:29
【问题描述】:

作为一名 Python 新手,我似乎在为一个需要实现的用例而苦恼。用例是我需要使用 REST 调用检索一些数据,然后将这些数据(修改后的)发送到另一个 REST API,然后操作一些字段,例如,重命名属性或删除属性强>。

# get the data
service1 = requests.get(http://myrestservice_1.com)

# modify the data?
# delete or rename a property?

# send the data
service2 = request.post(url=http://myrestservice_2.com, json=service1.json())

我使用 Rest 调用检索的数据示例:

{
  "prop1" : "value1",
  "prop2" : "value2"
{

例如,当需要将数据转发到另一个服务时,如何从 JSON 中删除或重命名 prop2 值?

提前致谢!

【问题讨论】:

  • 加载后(使用json.loadjson.loads),您将拥有简单的Python 结构,如列表或字典,您可以毫无问题地操作它们。

标签: python json rest


【解决方案1】:

requests.get() 返回一个Response 对象,其中包含您要解码的有效负载。你也可以自己做:

data = json.loads(service1.text)

或者让requests为你做。

data = service1.json()

根据需要修改data 后,您需要重新编码数据结构。同样,您可以手动执行此操作

service2 = request.post(url=http://myrestservice_2.com, data=json.dumps(data))

或者让requests为你做。

service2 = request.post(url=http://myrestservice_2.com, json=data)

【讨论】:

    【解决方案2】:
    response = requests.get()
    

    给你一个 Response 对象。 从那里,

    response.text
    

    为您获取一个带有 REST api 响应的字符串。

    response.status_code
    

    为您获取刚刚进行的调用的 HTTP 状态代码。

    还有,

    response.json()
    

    为您提供可以与之交互的 Python dict。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-11
      • 2019-03-15
      • 2010-09-08
      • 2013-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-14
      相关资源
      最近更新 更多