Reputation: 2194
I would like to be able to enter a server response code and have Requests tell me what the code means. For example, code 200 --> ok
I found a link to the source code which shows the dictionary structure of the codes and descriptions. I see that Requests will return a response code for a given description:
print requests.codes.processing # returns 102
print requests.codes.ok # returns 200
print requests.codes.not_found # returns 404
But not the other way around:
print requests.codes[200] # returns None
print requests.codes.viewkeys() # returns dict_keys([])
print requests.codes.keys() # returns []
I thought this would be a routine task, but cannot seem to find an answer to this in online searching, or in the documentation.
Upvotes: 60
Views: 57536
Reputation: 847
With Python 3.5 or newer, you can use HTTPStatus
:
>>> from http import HTTPStatus
>>> HTTPStatus(200).phrase
'OK'
Upvotes: 4
Reputation: 361
I had the same problem before and found the answer in this question
Basically:
responsedata.status_code
- gives you the integer status coderesponsedata.reason
- gives the text/string representation of the status codeUpvotes: 26
Reputation: 13
requests.status_codes.codes.OK
works nicely and makes it more readable in my application code
Notice that in source code: the requests.status_codes.codes is of type LookupDict which overrides method getitem
You could see all the supported keys with - dir(requests.status_codes.codes)
i like use following enum from flask-api plugin
from flask_api import status
where i get more descriptive version of HTTP status codes as in -
status.HTTP_200_OK
Upvotes: -2
Reputation: 474171
Alternatively, in case of Python 2.x, you can use httplib.responses
:
>>> import httplib
>>> httplib.responses[200]
'OK'
>>> httplib.responses[404]
'Not Found'
In Python 3.x, use http
module:
In [1]: from http.client import responses
In [2]: responses[200]
Out[2]: 'OK'
In [3]: responses[404]
Out[3]: 'Not Found'
Upvotes: 68
Reputation: 350
One possibility:
>>> import requests
>>> requests.status_codes._codes[200]
('ok', 'okay', 'all_ok', 'all_okay', 'all_good', '\\o/', '\xe2\x9c\x93')
The first value in the tuple is used as the conventional code key.
Upvotes: 31