json—在python中更新请求响应内容

jtoj6r0c  于 2021-07-14  发布在  Java
关注(0)|答案(1)|浏览(321)

我对Python还不熟悉。我正在尝试对使用请求库在exchange响应中得到的json主体进行更改。
我想做一些类似的事情:

import json
import requests

def request_and_fill_form_in_response() -> requests.Response():
    response = requests.get('https://someurl.com')
    body_json = response.json()
    body_json['some_field'] = 'some_value'
    response.content = json.dumps(body_json)
    return response

在这个特定场景中,我只对更新response.content对象感兴趣(不管它是否是一个好的实践)。
这可能吗?
(顺便说一句,上面的代码 'AttributeError: can't set attribute' 错误,这几乎是不言自明的,但我想确保我没有遗漏一些东西)

8aqjt8rx

8aqjt8rx1#

您可以这样重写内容:

from json import dumps
from requests import get, Response

def request_and_fill_form_in_response() -> Response:
    response = get('https://mocki.io/v1/a9fbda70-f7f3-40bd-971d-c0b066ddae28')
    body_json = response.json()
    body_json['some_field'] = 'some_value'
    response._content = dumps(body_json).encode()
    return response

response = request_and_fill_form_in_response()

print(response.json())

结果是: {'name': 'Aryan', 'some_field': 'some_value'} 但从技术上讲,内容是一个私有变量,必须有一个方法作为setter为其赋值。此外,还可以创建自己的响应对象(您可以在此处查看响应方法)

相关问题