Rod*_*nde 3 python json python-requests
我是Python新手。我正在尝试使用请求库对在交换响应中获得的 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
Run Code Online (Sandbox Code Playgroud)
在这个特定的场景中,我只对更新 response.content 对象感兴趣(无论这是否是一个好的做法)。
这可能吗?
(顺便说一句,上面的代码抛出'AttributeError: can't set attribute'错误,这几乎是不言自明的,但我想确保我没有遗漏一些东西)
您可以这样重写内容:
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())
Run Code Online (Sandbox Code Playgroud)
结果是:
{'name': 'Aryan', 'some_field': 'some_value'}
但从技术上讲 _content 是一个私有变量,必须有一个方法作为 setter 来为其赋值。此外,您也可以创建自己的 Response 对象。(您可以在此处查看回复方法)