IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Problème dans un script python [Python 3.X]


Sujet :

Python

Vue hybride

carlita_84 Problème dans un script python 09/02/2024, 21h42
papajoker bonjour Note: ne met pas... 09/02/2024, 22h12
licardentaistor Index out of range, la... 09/02/2024, 22h15
hocineaminoo Pouvez vous partagez le Bug ? 09/02/2024, 23h45
Sve@r Bonjour IndexError => tu... 10/02/2024, 01h35
carlita_84 J'ai modifié le code en... 10/02/2024, 12h06
Sve@r Même cause, mêmes effets.... 10/02/2024, 12h28
carlita_84 Non, mon token dans mon code... 10/02/2024, 12h39
fred1599 Bonjour, Attention à... 10/02/2024, 14h19
carlita_84 Je viens de tester ton code... 10/02/2024, 16h45
carlita_84 Peux tu m'expliquer cette... 10/02/2024, 17h12
wiztricks Une requête HTTP c'est un... 11/02/2024, 10h04
Sve@r Si la clef "results" est... 11/02/2024, 10h29
fred1599 @carlita_84, Tu peux... 10/02/2024, 17h31
papajoker @carlita_84 Et la doc... 10/02/2024, 18h23
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2023
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2023
    Messages : 89
    Par défaut Problème dans un script python
    Bonjour, je suis en train de faire un scripte python qui parcoure un répertoire et envoi les images sur un serveur puis récupère une information json.

    J'ai ce bug:
    plate_number = response.json()['results'][0]['plate']
    IndexError: list index out of range

    Voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    import  requests
    import json
    import sys
    import os  #pour parcourir le repertoire
     
    regions = ['fr']
     
     
    directory = 'voiture'
    for filename in os.listdir(directory):
        f = os.path.join(directory, filename)
        if os.path.isfile(f) and filename.endswith('.jpg'):
            print(f)
            with open(directory + '/' +filename ,'rb') as fp:
                response = requests.post('https://api.platerecognizer.com/v1/plate-reader/',data=dict(regions=regions),files=dict(upload=fp),headers={'Authorization':'Token 80eea5e90cdf8e7a9b72204861bb1c8617ed2908'})
            plate_number = response.json()['results'][0]['plate']
            print("plate Number is: " + plate_number.upper())

    Le bug se produit lorsque j'ajoute ces 2 lignes a la fin:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            plate_number = response.json()['results'][0]['plate']
            print("plate Number is: " + plate_number.upper())
    Quelqu'un pourrais t'il m'aider?

  2. #2
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 322
    Par défaut
    bonjour

    Note: ne met pas ton Token en clair

    je suppose que le résultat ne retourne aucune valeur...
    A toi de faire un print(response.json()) pour le tester

    Avant tes 2 lignes juste faire un test type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if not response.json()['results']:
        print("oops pas de résultat pour cette image", filename)
        continue

  3. #3
    Membre chevronné Avatar de licardentaistor
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2021
    Messages
    345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juillet 2021
    Messages : 345
    Par défaut
    Index out of range, la réponse à la requête POST est vide, donc vous essayez de lire un index inexistant.

    pourquoi la requête ne renvois rien ? mauvaise URL, mauvais paramètre ..... je vous laisse tester.

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 91
    Par défaut
    Pouvez vous partagez le Bug ?

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par carlita_84 Voir le message
    Le bug se produit lorsque j'ajoute ces 2 lignes a la fin:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            plate_number = response.json()['results'][0]['plate']
            print("plate Number is: " + plate_number.upper())
    IndexError => tu as un index qui va trop loin. Le seul index de l'instruction est "0". Donc response.json()['results'][0] n'existe pas ; et il n'existe pas parce que response.json()['results'][] est vide.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2023
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2023
    Messages : 89
    Par défaut
    J'ai modifié le code en testant response.json()['results'].

    J'ai modifié une lettre dans mon token


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    import  requests
    import json
    import sys
    import os  #pour parcourir le repertoire
     
    regions = ['fr']
     
     
     
    directory = 'voiture'
    for filename in os.listdir(directory):
        f = os.path.join(directory, filename)
        if os.path.isfile(f) and filename.endswith('.jpg'):
            print(f)
            with open(directory + '/' +filename ,'rb') as fp:
                response = requests.post('https://api.platerecognizer.com/v1/plate-reader/',data=dict(regions=regions),files=dict(upload=fp),headers={'Authorization':'Token 80eea5e90cdf8e7a9b72204861ba1c8617fd2908'})
            if not response.json()['results']:
                print("oops pas de résultat pour cette image", filename)
            else:
                plate_number = response.json()['results'][0]['plate']
                print("plate Number is: " + plate_number.upper())

    J'ai maintenant cette erreur:

    if not response.json()['results']:
    KeyError: 'results'

  7. #7
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Même cause, mêmes effets. KeyError => la clef n'existe pas. La seule clef de l'instruction est "results". Donc response.json()['results'] n'existe pas ; et il n'existe pas parce que response.json()[] est vide (ou du moins n'est peut-être pas vide mais en tout cas ne contient pas de clef "results"). Tant que tu ne testeras pas si tu obtiens bien ce que tu vas chercher tu auras toujours ce type de problème.
    Le seul point gênant est que puisque response.json()[] est évalué avant response.json()[][] tu aurais dû avoir cette erreur beaucoup plus tôt. Autrement dit, tu n'aurais pas dû avoir le IndexError sur response.json()['results'][0] puisque tu ne peux pas avoir de response.json()['results'].

    Sinon pourquoi cette sale construction directory + '/' +filename alors que tu as os.path.join() qui fait parfaitement le job, que l'utilises d'ailleurs 2 lignes au dessus et qui est alors stocké dans la variable "f" ???

    Citation Envoyé par carlita_84 Voir le message
    J'ai modifié une lettre dans mon token
    Peut-être que tu n'aurais pas dû et que c'est ça qui entraîne maintenant response.json()[] à être vide alors qu'il ne l'était pas auparavant.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  8. #8
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2023
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2023
    Messages : 89
    Par défaut
    Non, mon token dans mon code est bon, je l'ai juste modifié dans le forum.

    A vrai dire pour le bug, je ne comprends pas, j'ai déja testé plein de trucs

    Au sujet de cette ligne:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    with open(directory + '/' +filename ,'rb') as fp:
    J'ai fait ça car le slash sinon est dans l'autre sens, je pensais que sa ne marcherait pas.

  9. #9
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par carlita_84 Voir le message
    j'ai déja testé plein de trucs
    Il faut d'abord examiner la variable "response". Elle provient de la fonction "requests.post()". Quel est son type ? A mon avis ça doit être un objet (print(response, type(response))). N'a-t-elle donc pas en interne un indicateur permettant de voir l'erreur (chercher dans la doc de "requests"). Parce que si response.json() est vide (ou incorrectement remplie) c'est que quelque part la fonction "requests.post()" a échoué.
    Rien n'interdit aussi de lancer manuellement (depuis l'interpréteur Python) l'instruction requests.post('https://api.platerecognizer.com/v1/plate-reader/', data=dict(regions=regions), files=dict(upload=fp),headers={'Authorization':'Token 80eea5e90cdf8e7a9b72204861ba1c8617fd2908'}) et voir ce qui se passe.

    Citation Envoyé par carlita_84 Voir le message
    J'ai fait ça car le slash sinon est dans l'autre sens, je pensais que sa ne marcherait pas.
    Ben... le but de os.path.join() est de créer un chemin correspondant à l'OS. Si le slash est dans l'autre sens c'est que tu es sous Windows donc ça te donne un chemin mode Windows.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  10. #10
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 060
    Par défaut
    Bonjour,

    Attention à plusieurs choses,
    1. La gestion des erreurs (totalement absente)
    2. Vérifier les droits API (nombre de requêtes limites, types de fichier autorisés, ...)


    En prenant comme base le tout premier code qui me semblait pas trop mal, je propose d'y ajouter la gestion d'erreurs et quelques tests supplémentaires.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    import requests
    import os
     
    regions = ["fr"]
    directory = "voiture"
     
    for filename in os.listdir(directory):
        path = os.path.join(directory, filename)
        if os.path.isfile(path) and filename.endswith(".jpg"):
            try:
                with open(path, "rb") as fp:
                    response = requests.post(
                        "https://api.platerecognizer.com/v1/plate-reader/",
                        data=dict(regions=regions),
                        files=dict(upload=fp),
                        headers={"Authorization": "Token VOTRE_TOKEN_ICI"},
                    )
                    response.raise_for_status()
            except requests.exceptions.RequestException as e:
                print(f"Request failed: {e}")
            else:
                plate_data = response.json()
                if "results" in plate_data and plate_data["results"]:
                    plate_number = plate_data["results"][0]["plate"]
                    print("Plate Number is: " + plate_number.upper())
                else:
                    print(
                        "No plate found in image or 'results' key missing in response."
                    )
    Ne pas oublier de modifier VOTRE_TOKEN_ICI par le Token correct.

  11. #11
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2023
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2023
    Messages : 89
    Par défaut
    Je viens de tester ton code fred1599

    Il fonctionne

    J'obtiens ceci:

    No plate found in image or 'results' key missing in response.
    Request failed: 429 Client Error: Too Many Requests for url: https://api.platerecognizer.com/v1/plate-reader/
    Plate Number is: 9ASF
    Request failed: 429 Client Error: Too Many Requests for url: https://api.platerecognizer.com/v1/plate-reader/
    Plate Number is: 9ASF
    Request failed: 429 Client Error: Too Many Requests for url: https://api.platerecognizer.com/v1/plate-reader/
    Plate Number is: SN66XMZ
    Request failed: 429 Client Error: Too Many Requests for url: https://api.platerecognizer.com/v1/plate-reader/
    Plate Number is: SN66XMZ
    Request failed: 429 Client Error: Too Many Requests for url: https://api.platerecognizer.com/v1/plate-reader/
    Plate Number is: EK366AS
    Request failed: 429 Client Error: Too Many Requests for url: https://api.platerecognizer.com/v1/plate-reader/
    Plate Number is: EX366AS
    Peux être qu'en ajoutant une tempo entre chaque requêtes je n'aurais plus le message "Request failed", je vais tester

    Je viens de tester en mettant un délai de 1 secondes et la il n' y a plus le message d'erreur.

    Je vais essayer de faire de même avec le code précédent pour voir si sa change quelque chose.

  12. #12
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2023
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2023
    Messages : 89
    Par défaut
    Peux tu m'expliquer cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if "results" in plate_data and plate_data["results"]:
    Apparemment c'est cette ligne qui fait toute la différence entre un code qui bug et un code qui marche.


    J'ai testé en supprimant cette ligne, sa semble fonctionner sans celle-ci, est t'elle nécessaire?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    response.raise_for_status()

    Le code suivant fonctionne (j'ai enlever le try exept juste pour voir), j'ai remplacé la ligne:

    if not response.json()['results']:
    par la fameuse ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if "results" in plate_data and plate_data["results"]:
    Ce code fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    import requests
    import json
    import sys
    import os  # pour parcourir le repertoire
    from time import sleep
     
    regions = ['fr']
     
    directory = 'voiture'
    for filename in os.listdir(directory):
        f = os.path.join(directory, filename)
        if os.path.isfile(f) and filename.endswith('.jpg'):
            sleep(1)  # delai entre les requetes
            print(f)
            with open(directory + '/' + filename, 'rb') as fp:
                response = requests.post('https://api.platerecognizer.com/v1/plate-reader/', data=dict(regions=regions),
                                         files=dict(upload=fp),
                                         headers={'Authorization': 'Token 80eea5e90cdf8e7a9b72204861ba1c8617ed2908'})
            plate_data = response.json()
            if "results" in plate_data and plate_data["results"]:
                plate_number = plate_data["results"][0]["plate"]
                print("Plate Number is: " + plate_number.upper())
            else:
                print(
                    "No plate found in image or 'results' key missing in response."
                )

  13. #13
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 720
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 720
    Par défaut
    Citation Envoyé par carlita_84 Voir le message
    Apparemment c'est cette ligne qui fait toute la différence entre un code qui bug et un code qui marche.
    Une requête HTTP c'est un message expédié à un serveur qui répond (ou pas) avec un "statut" disant erreur ou succès. Ce n'est que lorsqu'il répond succès qu'on va pouvoir examiner le contenu de la réponse... qui, si elle contient une liste qui pourrait être vide,...

    Lorsqu'on "code", on doit prendre en compte ces différentes possibilités pour que ça ne plante pas dans certains cas... c'est ce qui fait la différence entre un code qui plante (parce qu'on a omis de gérer certaines possibilités) et un code qui plus robuste.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  14. #14
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par carlita_84 Voir le message
    Peux tu m'expliquer cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if "results" in plate_data and plate_data["results"]:
    Si la clef "results" est présente dans le dictionnaire "plate_data" et si la valeur plate_data["results"] est vraie (ie est non vide donc si c'est une liste, aura fatalement au-moins une valeur accessible par l'index [0]).
    C'est un petit peu écrit dans tous les tutoriels que tu aurais pu prendre la peine de lire. Un forum ne te dispense pas de l'investissement personnel minimum qui est de au-moins connaître les bases du langage.

    Citation Envoyé par carlita_84 Voir le message
    Apparemment c'est cette ligne qui fait toute la différence entre un code qui bug et un code qui marche.
    Ben oui. Tester si les informations que l'on demande sont bien là c'est effectivement ce qui fait toute la différence...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  15. #15
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 060
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 060
    Par défaut
    @carlita_84,

    Tu peux éditer tes messages, pas besoin de spam ton propre topic.

    Request failed: 429 Client Error: Too Many Requests for url: https://api.platerecognizer.com/v1/plate-reader/
    Ta problématique était ton nombre important de requêtes dans un court laps de temps, j'ai juste fait en sorte que le programme continu en indiquant les erreurs venant du serveur.

    Peux tu m'expliquer cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if "results" in plate_data and plate_data["results"]:
    Apparemment c'est cette ligne qui fait toute la différence entre un code qui bug et un code qui marche.
    Si c'était celle ci qui faisait la différence, alors tu aurais reçu ce message pour chaque plaque d'immatriculation, mais apparemment c'est le cas pour une seule plaque

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "No plate found in image or 'results' key missing in response."
    La modification n'est pas complexe pour connaître le nom du fichier de ton image qui pose problème... suffit d'ajouter print(path) en dessous de print("No plate found in image or 'results' key missing in response.")
    J'ai testé en supprimant cette ligne, sa semble fonctionner sans celle-ci, est t'elle nécessaire?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    response.raise_for_status()
    Elle est nécessaire pour indiquer les erreurs HTTP du type 4xx et 5xx, donc des problèmes liés au serveur auquel tu te connectes.
    Par exemple, une erreur d'authentification à cause d'un mauvais Token...

  16. #16
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 322
    Par défaut
    @carlita_84
    Citation Envoyé par fred1599 Voir le message
    nécessaire pour indiquer les erreurs HTTP du type 4xx
    Et la doc en donne 3 spécifiques à l'api que tu peux interpréter…

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment chopper le nb de lignes d'une table dans un script python?
    Par Mydriaze dans le forum Général Python
    Réponses: 9
    Dernier message: 21/12/2007, 14h16
  2. Utilisation de C++ dans un script python.
    Par Ekinoks dans le forum Interfaçage autre langage
    Réponses: 8
    Dernier message: 18/01/2007, 19h03
  3. import dans les script python (objet zope)
    Par cronos6 dans le forum Zope
    Réponses: 5
    Dernier message: 10/09/2006, 14h47
  4. Radio boutton dans un script python
    Par Abla23 dans le forum Zope
    Réponses: 17
    Dernier message: 12/07/2006, 17h12
  5. Réponses: 3
    Dernier message: 05/04/2005, 14h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo