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 :

Parsing d'une partie d'un JSON


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 12
    Par défaut Parsing d'une partie d'un JSON
    Bonjour,

    Avant toute chose je tiens à préciser que je suis débutant sur le langage.

    J'ai un soucis au niveau de la récupération d'une partie d'un JSON.
    Je m'explique, j'ai un JSON ressemblant à ça :

    Code JSON : 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
    30
    31
    32
    33
    {"signatures": [
            {
                "markcount": 1, 
                "families": [], 
                "description": "This executable has a PDB path", 
                "severity": 1, 
                "marks": [
                    {
                        "category": "pdb_path", 
                        "ioc": "C:\\Users\\Benson\\Desktop\\ALIN\\Source working\\Debug\\Spark.pdb", 
                        "type": "ioc", 
                        "description": null
                    }
                ], 
                "references": [], 
                "name": "has_pdb"
            }, 
            {
                "markcount": 1, 
                "families": [], 
                "description": "The executable contains unknown PE section names indicative of a packer (could be a false positive)", 
                "severity": 1, 
                "marks": [
                    {
                        "category": "section", 
                        "ioc": ".textbss", 
                        "type": "ioc", 
                        "description": null
                    }
                ], 
                "references": [], 
                "name": "pe_features"
            }

    Et je ne trouve pas de quels manière obtenir la deuxième "description".
    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
    d = json.load(json_data)
    signatures = d['signatures']['description']
    print(signatures)
    Le compilateur me renvoi :

    TypeError: list indices must be integers or slices, not str
    Je me doute qu'il faut soit faire une boucle ou préciser quelque chose dans ma variable signatures, mais je vois pas trop.

    j'ai essayé avec une boucle mais je dois mal m'y prendre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     for i in d :
            signatures = i['signatures']['description']
            print(signatures)
    Ce qui me retourne :

    TypeError: string indices must be integers
    Si une âme charitable pouvait me donner un coup de pouce ça serait super !

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    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 062
    Par défaut
    Bonsoir,

    Déjà que renvoie d ?

    ça me semble essentiel pour avancer...

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 12
    Par défaut
    print (d) me renvoie l'ensemble du json

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

    Citation Envoyé par DrNoxus Voir le message
    Si une âme charitable pouvait me donner un coup de pouce ça serait super !
    Vous voyez le '[' juste après le ':' de la clef "signatures"?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    {"signatures": [
            {
                "markcount": 1,
    çà dit bien que c'est une liste.... et c'est cohérent avec le message d'erreur: "list indices must be integers or slices, not str".

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

  5. #5
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Tu y étais presque pourtant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    for i in d:
        print(i['description'])

Discussions similaires

  1. Réponses: 3
    Dernier message: 23/01/2018, 15h51
  2. Réponses: 4
    Dernier message: 18/05/2004, 13h58
  3. [CVS]Gestion de 2 versions avec une partie commune
    Par Gromitou dans le forum EDI et Outils pour Java
    Réponses: 4
    Dernier message: 19/02/2004, 14h32
  4. comment remplacer une partie de texte dans un champs
    Par patlapi dans le forum Paradox
    Réponses: 4
    Dernier message: 20/11/2003, 14h38
  5. selectionner une partie d'un TImage
    Par bidochon dans le forum Composants VCL
    Réponses: 2
    Dernier message: 20/02/2003, 19h08

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