Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在请求中处理文本和重置_Python_Python 2.7_Python Requests - Fatal编程技术网

Python 在请求中处理文本和重置

Python 在请求中处理文本和重置,python,python-2.7,python-requests,Python,Python 2.7,Python Requests,决定使用Python请求来编写REST客户机。所有的工作都很好的职位,但所有的不是很好的得到 REST服务器预先设置抛出“allowIllegalResourceCall为false”以获取所有响应(作为反钓鱼机制)。使用标准python正则表达式库,使用以下语句,很容易将其删除:re.sub('\A.*[;]\n','',r.text)(可能不太完美,但可以完成任务)。(假设r是响应数据结构) 但是,当我使用以下命令将后处理文本重置回r.text时,就会出现问题:r.text=re.sub('

决定使用Python请求来编写REST客户机。所有的工作都很好的职位,但所有的不是很好的得到

REST服务器预先设置
抛出“allowIllegalResourceCall为false”
以获取所有响应(作为反钓鱼机制)。使用标准python正则表达式库,使用以下语句,很容易将其删除:
re.sub('\A.*[;]\n','',r.text)
(可能不太完美,但可以完成任务)。(假设r是响应数据结构)

但是,当我使用以下命令将后处理文本重置回r.text时,就会出现问题:
r.text=re.sub('\A.*[;]\n','',r.text)
,这会引发以下异常:
AttributeError:cannotset attribute
,这会使我认为文本是只读字段。(我想重置文本字段,以便使用响应对象的json功能)

现在我已经把背景问题摆出来了,我想我的问题是,有没有人知道解决方案,以及为什么文本是只读属性?(注意,我知道我可以在实际的请求源中为文本属性添加一个setter,但出于许多原因(不想破坏未来版本的构建、可移植性等))。

如果您只想解码JSON,则无需再次设置
文本属性:

import json

json.loads(re.sub('\A.*[;]\n', "", r.text))
如果您迫切需要修复响应正文,请改为设置
response.\u content
;首先从
.content
属性中读取:

r._content = re.sub('\A.*[;]\n', "", r.content)
.text
是一个属性;它提供响应的解码结果。并不是说你需要改变它;我知道我不需要这样做,但我觉得把剥离物抽象出来,然后像对待任何其他反应一样对待它,这比以完全不同于其他反应的方式处理它要优雅得多。