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 :

Récupérer les infos JSON en Python


Sujet :

Python

  1. #1
    Membre averti
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2014
    Messages : 14
    Par défaut Récupérer les infos JSON en Python
    Bonjours.

    Je génère grâce au service Kimono (http://www.kimonolabs.com/) une API sur le site d'Allociné afin de récupérer des informations utiles comme le synopsis, le titre ,etc d'un film.
    J'utilise ensuite un script Python afin de récupérer les information en JSON que Kimono me fournit.

    avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    import json
    import urllib
     
    RESULT=json.load(urllib.urlopen("http://www.kimonolabs.com/api/...."))
    print json.dumps(result2, indent=4, sort_keys=True, encoding="utf-8")
    J'obtiens par exemple ce JSON :

    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
     
    {
      "name": "Allocine2",
      "count": 1,
      "frequency": "realtime",
      "version": 8,
      "newdata": false,
      "lastrunstatus": "success",
      "lastsuccess": "Sat Mar 29 2014 17:15:37 GMT+0000 (UTC)",
      "results": {
        "collection1": [
          {
            "TitreFR": "Frères du désert",
            "Durée": "2h11min",
            "Released": {
              "href": "http://www.allocine.fr/film/agenda/sem-2003-11-05/",
              "text": "5 novembre 2003"
            },
            "Genre": {
              "href": "http://www.allocine.fr/films/genre-13001/",
              "text": "Aventure"
            },
            "Synopsis": "En 1898, Harry Feversham, un officier de l'Empire britannique, refuse d'aller défendre la forteresse coloniale de Khartoum attaquée par une armée de rebelles soudanais. La veille du départ des troupes, Harry tourne le dos à la guerre et quitte l'armée.Choqué par l'acte de son fils, son propre père le désavoue. Trois de ses amis, dont le lieutenant Jack Durrance et sa fiancée Ethne Eustace, lui envoient par ailleurs quatre plumes blanches symbolisant la lâcheté.Incompris, solitaire et tourmenté, Harry vit à Londres où il apprend que son meilleur ami Jack et son ancien régiment sont tombés aux mains des rebelles. L'officier britannique décide alors de regagner son honneur en participant à leur sauvetage déguisé en bédouin.",
            "TitreVO": "The Four Feathers"
          }
        ]
      }
    }
    Je voudrais maintenant parser tout ceci dans une base mysql en décodant ce JSON afin de récupérer par exemple le synopsis seul et le titre du film.
    Or je n'arrive pas à isoler les différentes parties du dictionnaire.
    Lorsque je lance :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print RESULT['results']['collection1']['Synopsis']
    j'obtiens ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: list indices must be integers, not str
    Auriez vous une idée afin de pouvoir isoler toute les infos ?
    Merci !

  2. #2
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Le message d'erreur est explicite: tu utilises une clé de dictionnaire là où tu as une liste.

    En fait, c'est le dernier crochet. Ce que tu demandes est ici (voir le '[0]'):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RESULT['results']['collection1'][0]['Synopsis']
    L'encodage utilisée est de l'utf-8: selon ton logiciel d'affichage, tu devras peut-être modifier l'encodage.

  3. #3
    Membre averti
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mars 2014
    Messages : 14
    Par défaut
    Super. ça fonctionne.
    Pour ce qui est de l'utf8 effectivement, je vais regarder ça de plus près.

    Merci beaucoup !

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 4
    Par défaut
    Bonjour, je suis bloquée sur la même chose, je n'arrive pas à récuperer les données. est ce que je peux vous montrer mon 'json'

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut
    Citation Envoyé par FadouaBrr Voir le message
    Bonjour, je suis bloquée sur la même chose, je n'arrive pas à récuperer les données. est ce que je peux vous montrer mon 'json'
    Il me semble qu'il est préférable d'ouvrir une nouvelle discussion (si tes recherches ne t'ont pas permis de trouver la solution par toi même)
    N'oublie pas de préciser le contexte ainsi que les erreurs obtenues

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

Discussions similaires

  1. Récupérer les infos d'un alias
    Par Oluha dans le forum Bases de données
    Réponses: 2
    Dernier message: 25/04/2005, 10h10
  2. Réponses: 3
    Dernier message: 28/10/2004, 08h39
  3. Delphi - récupérer les infos d'un utilisateur
    Par jlf dans le forum Débuter
    Réponses: 2
    Dernier message: 26/06/2004, 11h34
  4. Récupérer les infos sur un fichier audio
    Par Halleck dans le forum Windows
    Réponses: 13
    Dernier message: 17/04/2004, 18h39
  5. Réponses: 6
    Dernier message: 23/12/2003, 15h30

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