这段时间在技术上没太多的思考的,只是碰到几个虾米小问题。 往往问题不大,也会致使你花心思去排解。
今遇到一个reqeusts返回值的一个问题,花了不短时间调,后来发现是reqeusts返回的对象也含有 魔法函数 处理。
我这边的业务是cdn的刷新预缓存,对于该项目来说 http code 200, 2xx, 404 都是友好的。
#jb51.net import requests r = None try: r = requests.get("https://jb51.net") except: pass if r: print "ok"
为什么没有输出ok ? 按照常理来说,只要r不为 零值,就可以匹配到True. 但这次的返回是 <Response [404]>,为什么404会引起 if r 判断异常。
> type(r)
> requests.models.Response
看 requests的源代码可以很容易分析出该问题。
#jb51.net class Response(object): """The :class:`Response <Response>` object, which contains a server's response to an HTTP request. """ __attrs__ = [ '_content', 'status_code', 'headers', 'url', 'history', 'encoding', 'reason', 'cookies', 'elapsed', 'request' ] def __init__(self): super(Response, self).__init__() self._content = False self._content_consumed = False #: Integer Code of responded HTTP Status, e.g. 404 or 200. self.status_code = None def __repr__(self): return '<Response [%s]>' % (self.status_code) def __bool__(self): return self.ok @property def ok(self): try: self.raise_for_status() except HTTPError: return False return True def raise_for_status(self): ¦ """Raises stored :class:`HTTPError`, if one occurred.""" ¦ http_error_msg = '' ¦ if 400 <= self.status_code < 500: ¦ ¦ http_error_msg = '%s Client Error: %s for url: %s' % (self.status_code, self.reason, self.url) ¦ elif 500 <= self.status_code < 600: ¦ ¦ http_error_msg = '%s Server Error: %s for url: %s' % (self.status_code, self.reason, self.url) ¦ if http_error_msg: ¦ ¦ raise HTTPError(http_error_msg, response=self)
END.
以上这篇python requests response值判断方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
本文向大家介绍Java判断绝对值的方法总结,包括了Java判断绝对值的方法总结的使用技巧和注意事项,需要的朋友参考一下 if-else语句判断: 三元运算符判断: 注解:三元运算符的语法是 条件 ? 结果1 : 结果2;优点代码简洁,缺点可读性差 例子:int a,b,c; a=2;b=3; c=a>b?100:200; 语意:如果a>b,c=100;a<b,c=200
本文向大家介绍python判断正负数方式,包括了python判断正负数方式的使用技巧和注意事项,需要的朋友参考一下 我就废话不多说了,大家还是直接看代码吧! 补充知识:判断一个数值是否为正数、负数、零、整数 最近在看阮一峰老师的《ES6标准入门》的时候,看到ES6新增了两个方法。 用来判断一个数值。 一、判断整数------Number.isInteger() Number.isInteger()
返回一个布尔值,确定专递的值是否为原始值。 在不是原始类型的字符串数组上使用 Array.includes() , 使用 typeof 提供类型。 由于 typeof null 被求值为 'object',所以需要直接比较。 const isPrimitive = val => !['object', 'function'].includes(typeof val) || val === null
判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的)。 下面是大多数编程语言中典型的判断结构的一般形式: 判断语句 C++ 编程语言提供了以下类型的判断语句。点击链接查看每个语句的细节。 语句 描述 if 语句 一个 if 语句 由一个布尔表达式后跟一个或多个语句组成。 if...else 语句 一个 if 语句 后可跟一个可选
代码如下: 功能点是localStorage存的值 赋值到 row.processName 这样写是错的,请问大佬们,没有被修改过的值保留row.processName,修改了后走myName的值 比如修改这个
本文向大家介绍Python判断Abundant Number的方法,包括了Python判断Abundant Number的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python判断Abundant Number的方法。分享给大家供大家参考。具体如下: Abundant Number,中文译成:盈数(又称 丰数, 过剩数abundant number)是一种特殊的 自然数,除去它本