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

Réseau/Web Python Discussion :

Récupérer plusieurs donnée dans fichier JSON avec Python 3


Sujet :

Réseau/Web Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2018
    Messages : 13
    Points : 17
    Points
    17
    Par défaut Récupérer plusieurs donnée dans fichier JSON avec Python 3
    Bonjour

    Quelqu’un peut me donner un coup de main pour récupérer plusieurs données dans un fichier JSON car j’arriver à récupérer une seule donnée mais j’aimerais filtres et en récupérer plusieurs a la fois et j’arrive pas à parcourir le fichier.

    Lien pour recupérer la cve : https://nvd.nist.gov/feeds/json/cve/...ified.json.zip
    Lien pour le parser/decoder : https://jsonformatter.org/json-parser

    Fichier tellement grand que c'est pas possible de le partager.

    Mon objectif avec ce fichier est de récupérer toutes les CVEs, de les trier sous forme d'accordéon (liste) et dans chaque accordéon (liste) il y a la famille CVE concerné sous forme de tableau :

    Exemple :

    CVE LANGAGES
    >> Langage Android (sous forme de tableau)
    >> Langage C++ (sous forme de tableau)

    CVE BDD
    >> MySQL (sous forme de tableau)
    >> PostgreSQL (sous forme de tableau)

    etc.

    Exemple d'un tableau CVE :
    https://www.noelshack.com/2018-46-7-...8-15h45-51.png

  2. #2
    Modérateur

    Homme Profil pro
    Architecte technique
    Inscrit en
    juin 2008
    Messages
    14 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 14 468
    Points : 24 478
    Points
    24 478
    Par défaut
    Salut,

    Citation Envoyé par Antho000 Voir le message
    mais j’aimerais filtres et en récupérer plusieurs a la fois et j’arrive pas à parcourir le fichier.
    La démarche est en gros:
    • Extraire des données significatives pour constituer un jeu de test.
    • Tester que le(s) filtre(s) fonctionne(nt) sur ces jeux de données.
    • Appliquer la sauce aux plus gros fichiers.

    Et si vous coincez à la deuxième étape, postez le jeu de données, le code que vous avez fait et exposez le problème rencontré... et vous auriez certainement de l'aide.

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

  3. #3
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    novembre 2010
    Messages
    2 845
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : novembre 2010
    Messages : 2 845
    Points : 7 820
    Points
    7 820
    Par défaut
    salut,

    Citation Envoyé par Antho000 Voir le message
    (...) dans un fichier JSON (...) j’arrive pas à parcourir le fichier.
    simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import json
    with open('nvdcve-1.0-modified.json') as f:
       z = json.loads(f.read())
    reste à fouiller le json pour extraire ce qu'on souhaite, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >>> z['CVE_Items'][42]['cve']['description']['description_data'][0]['value']
    'Multiple directory traversal vulnerabilities in OpenStack Nova before 2011.3.1, when the EC2 API and the S3/RegisterImage image-registration method are enabled, allow remote authenticated users to overwrite arbitrary files via a crafted (1) tarball or (2) manifest.'
    Avant donc que d'écrire, apprenez à penser.
    Selon que notre idée est plus ou moins obscure, l'expression la suit, ou moins nette, ou plus pure.
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément.
                                                        - Nicolas Boileau, L'Art poétique

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2018
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2018
    Messages : 13
    Points : 17
    Points
    17
    Par défaut
    Bonjour à vous

    Désolé de répondre tardivement.

    Oui en récupéré un par un j'y arrive mais j'aimerais automatisé tout ça, par exemple mon objectif est d'avoir :

    • Une FAMILLE (exemple: SQL INJECTION)

    • CVE sous forme de tableau (SQL INJECTION 2018-11-30)
    • CVE sous forme de tableau (SQL INJECTION 2018-10-14)
    • SQL sous forme de tableau (SQLINJECTION 2018-09-26)
    • etc

    • Une FAMILLE (exemple: BUFFER OVERFLOW)

    • CVE sous forme de tableau (BUFFER OVERFLOW 2018-11-11)
    • CVE sous forme de tableau (BUFFER OVERFLOW 2018-10-10)
    • CVE sous forme de tableau (BUFFER OVERFLOW 2018-09-28)
    • etc

    La je vous met l’objectif que je souhaite avoir :



    Et le tableau seras sous cette forme (comme sur le site officiel) :



    Après si avec le fichier JSON ce n'est vraiment pas possible d'automatiser tout ça, auriez vous une autre solution me proposer par tout hasard ?

  5. #5
    Modérateur

    Homme Profil pro
    Architecte technique
    Inscrit en
    juin 2008
    Messages
    14 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 14 468
    Points : 24 478
    Points
    24 478
    Par défaut
    Citation Envoyé par Antho000 Voir le message
    Après si avec le fichier JSON ce n'est vraiment pas possible d'automatiser tout ça, auriez vous une autre solution me proposer par tout hasard ?
    BufferBob vous a proposé une démarche avec des exemples.
    Après, il faut coder et çà c'est vous qui faites sauf si vous rencontrez des difficultés (et là vous aurez du code à poster, des messages d'erreurs,...)

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

  6. #6
    Expert éminent Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    décembre 2012
    Messages
    3 266
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : décembre 2012
    Messages : 3 266
    Points : 9 366
    Points
    9 366
    Par défaut
    Déjà, montre nous comment tu fais pour en récupérer un puis un autre...

    Pour faire tes listes (hors langage python), comment y prendrais-tu à la main, à partir du fichier json ?

    Si tu peux répondre à la question, tu pourras certainement le coder...
    Cordialement.

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    mars 2005
    Messages
    228
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : mars 2005
    Messages : 228
    Points : 203
    Points
    203
    Par défaut
    Pas trop le temps aujourd'hui mais regarde si ce n'est pas à creuser (pas le temps d'étudier le contenu du JSON en détail ni ce que tu as besoin réellement, désolé) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import json
    f = open('nvdcve-1.0-modified.json')
    z = json.loads(f.read())
     
    print([{obj['cve']['CVE_data_meta']['ID'], obj['cve']['CVE_data_meta']['ASSIGNER']} for obj in z['CVE_Items']  if( 'vulnerability' in obj['cve']['description']['description_data'][0]['value'])])
    Cela donne un jeu de données "bidon" :
    [{'CVE-2005-3912', 'cve@mitre.org'}, {'cve@mitre.org', 'CVE-2011-5325'}, {'CVE-2013-2805', 'cve@mitre.org'}, {'cve@mitre.org', 'CVE-2014-1904'}, .../...]

    Ha... ai vu trop tard, si cela fait doublon avec le post de BufferBob on peut le supprimer (?)

Discussions similaires

  1. [MySQL] Comment faire pour récupérer les données dans ce tableau avec php ?
    Par selim07 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 11/03/2017, 00h58
  2. Entré de données dans fichier excel avec Form VB6
    Par avyrex dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 17/05/2007, 15h08
  3. [pl/sql] Récupérer des données dans fichier
    Par claralavraie dans le forum Oracle
    Réponses: 22
    Dernier message: 13/07/2006, 17h49
  4. [DOM XML] Insertion données dans fichier XML avec PHP pour Flash ?
    Par ExSter dans le forum Bibliothèques et frameworks
    Réponses: 17
    Dernier message: 10/05/2006, 12h16
  5. [EJBQL] Récupérer une donnée dans un EJB avec EJB/QL
    Par pblb62 dans le forum Java EE
    Réponses: 3
    Dernier message: 28/03/2006, 12h53

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