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

Shell et commandes GNU Discussion :

Récupération d'un attribut d'un tableau d'objet


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2024
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2024
    Messages : 6
    Par défaut Récupération d'un attribut d'un tableau d'objet
    Bonjour à tous,

    Je ne sais pas si je suis au même endroit, mais je dois créer un fichier shell, qui récupère des données d'un fichier au format json pour l'écrire dans un autre fichier.
    Pour l'instant je bloque sur la récupération d'une valeur. voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    GENRES=$(cat file.json | jq 'group_by(.gender)[] | [{gender: .[0].gender, Nombre: length}]')
    la liste suivante :.
    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
     
    {
      "gender": "female",
      "Nombre": 17
    }
    {
      "gender": "hermaphrodite",
      "Nombre": 1
    }
    {
      "gender": "male",
      "Nombre": 60
    }
    {
      "gender": "n/a",
      "Nombre": 3
    }
    {
      "gender": "none",
      "Nombre": 2
    }
    pour l'instant j'essaye de récupérer la chaine que je vais écrire dans un fichier mais je n'y arrive pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for genre in $GENRES
     do 
           echo 'Le genre est ${genre.gender}'
    done
    pourriez-vous comment affichier la valeur correspondant au genre ?
    merci d'avance !
    [/CODE]

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 662
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 662
    Par défaut
    Bonjour,

    parce que , il me faut le fichier json et ton code in extenso.
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mai 2024
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Santé

    Informations forums :
    Inscription : Mai 2024
    Messages : 6
    Par défaut
    Comment ça ? J'ai tout mis au dessus...

  4. #4
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par défaut
    Bonjour

    Rien compris.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ jq '.gender' fichier.json 
    "female"
    "hermaphrodite"
    "male"
    "n/a"
    "none"

  5. #5
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 323
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 323
    Par défaut
    bonjour

    Si tu avais un tableau bash, ce qui n'est pas le cas ici avec ton code !
    Si le contenu de ton tableau est bon ....
    Voir la doc bash pour avoir acces aux elements dans ta boucle -> for var in "${tableau[@]}".

    Mais pour la suite, bash n'est pas objet donc il n'y a pas d'attributs dans tes variables.

    Donc, en résumé, tu n'as ni tableau , ni objet

  6. #6
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 662
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 662
    Par défaut
    ah, d'accord ! étrange présentation. passons.

    le jq sur le JSON présenté me donne des erreurs : Cannot index string with string "gender"

    et quelle est la sortie attendue :
    • de jq
    • du script
    ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. Déclarer un attribut de type tableau dans une classe
    Par Bahrony dans le forum Collection et Stream
    Réponses: 12
    Dernier message: 09/11/2018, 14h27
  2. L'accès aux attributs d'un objet dans un tableau d'objets
    Par samarqand dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 15/03/2016, 17h51
  3. [XL-2007] générer autant de graphiques que d'attributs dans le tableau
    Par anaelleata dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 12/11/2014, 10h50
  4. Attribut de type tableau d'objets dans un modèle Ecore
    Par informatique2010 dans le forum Eclipse Platform
    Réponses: 0
    Dernier message: 05/08/2010, 15h45
  5. Création d'un attribut de type tableau en base
    Par Toph1 dans le forum W4 Express
    Réponses: 0
    Dernier message: 06/02/2009, 15h41

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