这似乎是一个愚蠢的问题,可能是。
假设我按如下方式向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有效负载 - 这可能就是我过度思考它的原因!
非常感谢!
答案 0 :(得分:3)
response = requests.post("http://EXAMPLE.COM/api/randomstring")
为了访问响应内容,您应该使用response.text
,因为text
是响应对象的属性。
所以改变,
new_word = r.text()
到的
new_word = r.text