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 :

Suite utilisation API retour d'un <class 'method'> alors que c'est un dict


Sujet :

Python

  1. #1
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2018
    Messages : 11
    Par défaut Suite utilisation API retour d'un <class 'method'> alors que c'est un dict
    Bonjour,

    débutant en python, je suis en train d'utiliser une API d'un site.

    lorsque j'effectue un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print(type(reponse.json))
    j'obtiens un Alors que je m'attendais à un dictionnaire, d'ailleurs, c'est ce que j'obtiens visuellement.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {'message': 'Submission successful', 'uuid': '9381aae4-f2db-4f5d-85b8-a4ae9eb8114c', 'result': 'https://urlscan.io/result/9381aae4-f2db-4f5d-85b8-a4ae9eb8114c/', 'api': 'https://urlscan.io/api/v1/result/9381aae4-f2db-4f5d-85b8-a4ae9eb8114c/', 'visibility': 'private', 'options': {'useragent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36'}, 'url': 'https://google.com'}
    Malgré mes recherches infructueuses ( mettre python et method renvoie à 253 000 000 de réponses pas très explicites) je me tourne vers la communauté.

    Y a-t-il un moyen de mettre le class method en dict ? J'ai essayé diverses solution qui ne me renvoi que des erreurs.

    La solution est surement basique mais malgré mes cours, introuvable. ( Je n'ai pas encore fini la partie orienté objet, si la réponse se trouve dans ce cours, c'est peut-être pour ça que je n'ai pas la réponse ).


    Merci !

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    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 715
    Par défaut
    Salut,

    Citation Envoyé par Sviet Voir le message
    Malgré mes recherches infructueuses ( mettre python et method renvoie à 253 000 000 de réponses pas très explicites) je me tourne vers la communauté.
    Si vous n'ouvrez pas un tuto. pour apprendre les bases, vous ne savez pas que chercher et vous ne savez même pas lire les informations que vous donne la commande print(type(reponse.json)).

    C'est quoi une méthode? C'est quoi une fonction? Des choses qu'on "appelle" avec d'éventuels paramètres en espérant que çà retourne le résultat attendu (i.e. ce que la documentation dit que...).

    Et sans savoir de quelle bibliothèque sort l'objet response, difficile de savoir ce que fait la méthode .json (puisqu'on ne sait pas où c'est documenté).

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

  3. #3
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2018
    Messages : 11
    Par défaut
    Me répondre RTFM ça ne m'aidera pas. Si tu ne veux pas m'aider ne me répond pas. Je ne t'ai pas mis le couteau sous la gorge.

    Me dire où chercher dans le manuel m'aidera surement plus.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    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 715
    Par défaut
    Salut,

    Citation Envoyé par Sviet Voir le message
    Me répondre RTFM ça ne m'aidera pas. Si tu ne veux pas m'aider ne me répond pas. Je ne t'ai pas mis le couteau sous la gorge.
    Si on savait quel manuel lire, on pourrait dire RTFM.

    Citation Envoyé par Sviet Voir le message
    Me dire où chercher dans le manuel m'aidera surement plus.
    Pour çà, il faudrait déjà savoir de quelle bibliothèque sort "response" et de quel objet il s'agit.

    Et si vous ignorez les informations importantes à regarder pour pouvoir chercher par vous même où même pour demander de l'aide... c'est que vous êtes un vrai débutant qui devrait commencer par apprendre les bases.

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

  5. #5
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Creuse (Limousin)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2018
    Messages : 11
    Par défaut
    J'ai finalement trouvé ma réponse, pour les prochains perdus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    obj = json.loads(reponse.text)
    .text transforme la variable "reponse" en str et json.loads transforme ce str suivant un tableau de conversion, en quelque chose compris par python.

    json.loads comprend que ma variable "reponse.text" est un dictionnaire. On met tout ça dans une variable ( "obj" pour ma part ) et on peut continuer à travailler. ( de ce que j'ai compris )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    print(type(obj))
     <class 'dict'>
    je cherchais en fonction de l'erreur retournée qui est trop vaste, il fallait se concentré sur le résultat que je voulais, c'est à dire avoir un dict en utilisant le module JSON.

    ( Pour Wiztricks, a priori c'est un problème connu, si python ne reconnait pas le JSON, on utilise JSON.loads(), pas besoin de me sortir sa science ( et ne m'apporter aucune solution ) pour un truc basique. Doc python : 19.2.1. Encodage et décodage JSON Utilisation basique
    Vous avez une connaissance supérieur à la mienne, mais aussi le complexe de Dieu à mon avis. Pour info, c'est le fils du voisin, en 3eme qui m'a trouvé la solution et je ne lui ai pas dit plus qu'à vous. Sur la réponse d'une API j'ai un Class method alors que je devrais avoir un class dict. Il m'a repondu, tu mets reponse avec .text puis dans une variable tu mets le resultat de json.loads(reponse.text) et en prime il m'a expliqué le pourquoi du comment. Et tout ça avec le sourire sans me prendre pour une sous merde. A bon entendeur. )

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    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 715
    Par défaut
    Citation Envoyé par Sviet Voir le message
    Vous avez une connaissance supérieur à la mienne, mais aussi le complexe de Dieu à mon avis. Pour info, c'est le fils du voisin, en 3eme qui m'a trouvé la solution et je ne lui ai pas dit plus qu'à vous.
    Si j'étais dieu, j'aurais pu regarder votre écran comme a pu le faire votre voisin et avoir les informations que vous n'avez pas su/voulu donner concernant la bibliothèque utilisée: pas besoin de demander si on peut lire le code!

    Après on peut faire l'hypothèse que vous utilisez le module requests.
    Dans ce cas, la réponse est dans la première page de la documentation (r.json())... (et elle est différente de celle qu'on vous a donné).

    Et vous conviendrez que si vous appelez une hotline pour un conseil d'utilisation de votre machine à café, savoir donner la marque et le modèle va de soi...

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

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/11/2009, 09h46
  2. Réponses: 3
    Dernier message: 30/03/2007, 11h28
  3. [debutant] Utilisation de l'operateur = dans une classe
    Par Battosaiii dans le forum Débuter
    Réponses: 8
    Dernier message: 10/11/2005, 23h01
  4. Utiliser des procédures au lieu des classes
    Par ahage4x4 dans le forum ASP
    Réponses: 5
    Dernier message: 29/06/2005, 10h53
  5. [Applet]Utiliser plusieurs Applet dans une même classe
    Par BRAUKRIS dans le forum Applets
    Réponses: 5
    Dernier message: 11/06/2004, 15h27

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