在Python请求中获取状态代码的描述

时间:2014-07-13 00:42:05

标签: python http python-requests

我希望能够输入服务器响应代码并让请求告诉我代码的含义。例如,代码200->确定

我找到了source code的链接,其中显示了代码和说明的字典结构。我看到Requests将返回给定描述的响应代码:

print requests.codes.processing  # returns 102
print requests.codes.ok          # returns 200
print requests.codes.not_found   # returns 404

但不是相反:

print requests.codes[200]        # returns None
print requests.codes.viewkeys()  # returns dict_keys([])
print requests.codes.keys()      # returns []

我认为这是一项例行工作,但似乎无法在网上搜索或documentation中找到答案。

4 个答案:

答案 0 :(得分:24)

或者,对于Python 2.x,您可以使用httplib.responses

>>> import httplib
>>> httplib.responses[200]
'OK'
>>> httplib.responses[404]
'Not Found'

在Python 3.x中,使用http module

In [1]: from http.client import responses

In [2]: responses[200]
Out[2]: 'OK'

In [3]: responses[404]
Out[3]: 'Not Found'

答案 1 :(得分:20)

一种可能性:

>>> import requests
>>> requests.status_codes._codes[200]
('ok', 'okay', 'all_ok', 'all_okay', 'all_good', '\\o/', '\xe2\x9c\x93')

元组中的第一个值用作传统的代码密钥。

答案 2 :(得分:2)

我之前也遇到过同样的问题,发现 回答in this question

基本上:

  • responsedata.status_code - 给你整数状态码
  • responsedata.reason - 给出状态代码的文本/字符串表示

答案 3 :(得分:0)

  

requests.status_codes.codes.OK

可以很好地工作,并使我的应用程序代码更具可读性

请注意,在source code中:requests.status_codes.codes的类型为LookupDict,它会覆盖方法 getitem

您可以使用 - dir(requests.status_codes.codes)

查看所有支持的键

与FLASK结合使用时:

我喜欢使用来自flask-api插件的enum from flask_api import status我在其中获得了更多描述性的HTTP状态代码,如 -

  

status.HTTP_200_OK