【问题标题】:Python: "TypeError: 'Response' object has no attribute '__getitem__'Python:“TypeError:‘响应’对象没有属性‘__getitem__’
【发布时间】:2015-03-25 19:09:55
【问题描述】:

我尝试在创建帐户和发帖之前研究此问题。我的研究没有定论,主要是因为我是 Python 新手。

问题:我正在尝试匹配 if 语句,以确保在运行我的主代码之前服务器已启动并运行。

不起作用的解决方案集:
1) 我尝试了以下 if 语句
2) 我尝试通过管道传递变量以查找前导/结尾空格。
3) 我尝试了 response.split
4) 我尝试了 response[:3] 来匹配前 3 个字符并得到上述错误

脚本的作用:如果 elastisearch 服务器启动并运行,则返回“”。

代码:

Import requests    
es_server = "IP:PORT"
response = requests.get("http://" + es_server)
if response == '<Response [200]>':
 print "yep"

如果我尝试 response.text() 会收到 unicode 错误

【问题讨论】:

  • 以上工作,感谢您的快速响应和解释

标签: python-2.7


【解决方案1】:

requests.get 的结果不是字符串,而是一个包含各种信息的Response 对象。 &lt;Response [200]&gt; 只是该对象的字符串表示,但它不等于对象本身。有关一些文档,请参阅 here

如果你想测试响应的状态码,你应该这样检查:

if response.status_code == 200:
    print "yep"

【讨论】:

    猜你喜欢
    • 2015-12-16
    • 2015-11-29
    • 2018-04-13
    • 2013-04-15
    • 1970-01-01
    • 2017-01-08
    • 2017-08-17
    • 1970-01-01
    • 2012-12-04
    相关资源
    最近更新 更多