Django Python请求 - 解析text / plain payload

时间:2018-03-14 10:08:35

标签: python django django-models python-requests

这似乎是一个愚蠢的问题,可能是。

假设我按如下方式向API发出请求:

r = requests.post("http://EXAMPLE.COM/api/randomstring")
## I've blocked out the real URL so false requests aren't made as it's publicly available

此API的规范是在每个请求中,它生成一个10个字母的随机字符串。如果请求处理成功,服务器应以 201 CREATED text / plain payload 响应,从API数据库中提供随机字符串。

我之前尝试过以下方法来解析请求,并将其添加到本地存储的数据库模型中:

new_word = r.text()
Words.objects.create(word=new_word)

但这给出了错误:

TypeError: 'str' object is not callable

我接着尝试过:

Words.objects.create(word=r)

当我从客户端运行它,然后检查本地数据库时,它只显示为:

word: <Response [201]> 

这意味着显然请求成功,并且文本/普通有效负载中有一个单词。

但是我如何只解析有效负载中的单词,以便我能够将其保存为(例如):

word: hskcudyhft

我知道如何解析一个可能比这更棘手的JSON有效负载 - 这可能就是我过度思考它的原因!

非常感谢!

1 个答案:

答案 0 :(得分:3)

response = requests.post("http://EXAMPLE.COM/api/randomstring")

为了访问响应内容,您应该使用response.text,因为text是响应对象的属性。

所以改变,

new_word = r.text()

new_word = r.text