web-dev-qa-db-fra.com

Obtenir la description d'un code d'état dans les requêtes Python

J'aimerais pouvoir entrer un code de réponse du serveur et que Demandes me dise ce que le code signifie. Par exemple, code 200 -> ok

J'ai trouvé un lien vers le code source qui montre la structure du dictionnaire des codes et des descriptions. Je vois que les requêtes renverront un code de réponse pour une description donnée:

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

Mais pas l'inverse:

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

Je pensais que ce serait une tâche de routine, mais je n'arrive pas à trouver une réponse à cette question dans la recherche en ligne ou dans le documentation .

19
Roberto

Une possibilité:

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

La première valeur du tuple est utilisée comme clé de code conventionnelle.

15
shux

Sinon, dans le cas de Python 2.x, vous pouvez utiliser httplib.responses :

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

Dans Python 3.x, utilisez http module :

In [1]: from http.client import responses

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

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

requests.status_codes.codes.OK 

fonctionne bien et le rend plus lisible dans mon code d'application

Notez que dans code source : le code requests.status_codes.codes est de type LookupDict qui remplace la méthode getitem  

Vous pouvez voir toutes les clés supportées avec - dir(requests.status_codes.codes)

Lors de l'utilisation en combinaison avec FLASK:

j’aime utiliser l’énumération suivante du plugin flask-api from flask_api import status où j’obtiens une version plus descriptive des codes d’état HTTP comme dans -

status.HTTP_200_OK

0
ofbyone