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
    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/1.0/nvdcve-1.0-modified.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-1542552758-2018-11-18-15h45-51.png

  2. #2
    Expert éminent sénior
    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
    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.'

  4. #4
    Membre à l'essai
    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
    Expert éminent sénior
    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 sénior
    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
    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 (?)

###raw>template_hook.ano_emploi###