Ответ 1
Одна возможность:
>>> import requests
>>> requests.status_codes._codes[200]
('ok', 'okay', 'all_ok', 'all_okay', 'all_good', '\\o/', '\xe2\x9c\x93')
Первое значение в кортеже используется как обычный кодовый ключ.
Я хотел бы иметь возможность ввести код ответа сервера и запросить подсказки, что означает этот код. Например, код 200 → ok
Я нашел ссылку на исходный код, который показывает структуру словарей кодов и описаний. Я вижу, что 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 []
Я думал, что это будет рутинная задача, но не может найти ответа на это в онлайн-поиске или в документации.
Одна возможность:
>>> import requests
>>> requests.status_codes._codes[200]
('ok', 'okay', 'all_ok', 'all_okay', 'all_good', '\\o/', '\xe2\x9c\x93')
Первое значение в кортеже используется как обычный кодовый ключ.
В качестве альтернативы, в случае Python 2.x вы можете использовать httplib.responses
:
>>> import httplib
>>> httplib.responses[200]
'OK'
>>> httplib.responses[404]
'Not Found'
В Python 3.x используйте http
модуль:
In [1]: from http.client import responses
In [2]: responses[200]
Out[2]: 'OK'
In [3]: responses[404]
Out[3]: 'Not Found'
requests.status_codes.codes.OK
работает красиво и делает его более читаемым в моем коде приложения
Обратите внимание, что в исходном коде: request.status_codes.codes имеет тип LookupDict, который переопределяет метод getitem
Вы можете видеть все поддерживаемые ключи с помощью - dir(requests.status_codes.codes)
from flask_api import status
нравится использовать следующий enum из flask-api plugin from flask_api import status
где я получаю более описательную версию кодов состояния HTTP,
status.HTTP_200_OK