Récupérer des données json avec jq script shell
Résolu/Fermé
A voir également:
- Shell jq -r
- Classic shell windows 11 - Télécharger - Personnalisation
- Sfc /scannow /f /r - Guide
- Chkdsk c /f /r - Guide
- R-linux - Télécharger - Sauvegarde
- Python \r ✓ - Forum Python
5 réponses
lEprofSonDkon
Messages postés
211
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
8 octobre 2022
13
Modifié le 16 avril 2019 à 01:08
Modifié le 16 avril 2019 à 01:08
s'il te plaît, utilise les balises CODE !
sans ça, on perd en lisibilité.
sans ça, on perd en lisibilité.
lEprofSonDkon
Messages postés
211
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
8 octobre 2022
13
Modifié le 16 avril 2019 à 01:34
Modifié le 16 avril 2019 à 01:34
wget -qO - 'http://api.nobelprize.org/v1/prize.json' | jq --raw-output --arg Y 2005 --arg C physics '.prizes[]|select( .year == $Y and .category == $C )|"\(.year)"+" "+"\(.laureates[].surname)"'
Merci beaucoup lEprofSonDkon !
je vais regarder le tout et je reviens!
:):)
je vais regarder le tout et je reviens!
:):)
Bonsoir lEprofSonDkon :)
Je comprend bien ce que tu m'as envoyé! merci !
Par contre, je ne réussi pas à avoir tous les firstname suivie des surname...
et ici ils sont tous frères et sœurs!
j'ai essaie plein d'autres combinaisons... mais rien!
J'ai aussi une autre question, il y a t-il une explication du pourquoi si je mets au départ de mon script annee="$1" et categorie="$2" 'a la place de $1 et $2 ça ne fonctionne pas?
curiosité, pourquoi wget et pas curl ?
merci infiniment pour ta patience et de ton aide précieux!!
Je comprend bien ce que tu m'as envoyé! merci !
Par contre, je ne réussi pas à avoir tous les firstname suivie des surname...
wget -qO - 'http://api.nobelprize.org/v1/prize.json' | jq --raw-output --arg Y $1 --arg C $2 '.prizes[]|select( .year == $Y and .category == $C ) | "\(.laureates[].firstname , .surname)" '
et ici ils sont tous frères et sœurs!
wget -qO - 'http://api.nobelprize.org/v1/prize.json' | jq --raw-output --arg Y $1 --arg C $2 '.prizes[]|select( .year == $Y and .category == $C ) | "\(.laureates[].firstname)"+" "+"\(.laureates[].surname)"' >&2
j'ai essaie plein d'autres combinaisons... mais rien!
J'ai aussi une autre question, il y a t-il une explication du pourquoi si je mets au départ de mon script annee="$1" et categorie="$2" 'a la place de $1 et $2 ça ne fonctionne pas?
curiosité, pourquoi wget et pas curl ?
merci infiniment pour ta patience et de ton aide précieux!!
lEprofSonDkon
Messages postés
211
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
8 octobre 2022
13
>
BillyV33
16 avril 2019 à 09:36
16 avril 2019 à 09:36
LES BALISES CODES !!!
c'est pénible.
c'est pénible.
lEprofSonDkon
Messages postés
211
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
8 octobre 2022
13
>
BillyV33
Modifié le 16 avril 2019 à 19:57
Modifié le 16 avril 2019 à 19:57
merci pour les balises code.
j'ai cherché (#STFW), et j'ai trouvé cette manière de faire :
j'ai cherché (#STFW), et j'ai trouvé cette manière de faire :
jq --raw-output --arg Y 2005 --arg C physics '.prizes[]|select( .year == $Y and .category == $C ) | .year as $year | .laureates[] | $year+", "+.surname+", "+.firstname'
wget,
curl...
wgetpar habitude (et ça me paraît plus simple)
curlpermet des actions plus complexes, il me semble, dont je n'ai que très rarement besoin.
Merci beaucoup encore et encore lEprofSonDkon !
Tu es vraiment de grand aide!
Ça fonctionne super bien!
vu que je ne voulais que nom et prénom j'ai un peu modifié
wget -qO - 'http://api.nobelprize.org/v1/prize.json' | jq --raw-output --arg annee "$1" --arg categorie "$2" '.prizes[]|select( .year == $annee and .category == $categorie ) | .laureates[] | .firstname+", "+.surname'
j'ai juste une petite question avant de mettre à résolu si c'est possible :)
pour ma compréhension..
dans jq --raw-output --arg Y 2005 --arg C physics '.prizes[]|select( .year == $Y and .category == $C ) | .year as $year | .laureates[] | $year+", "+.surname+", "+.firstname'
dans le select on initialise le .year et category mais après pourquoi on pipe ça à ... .year as $year
je n'arrive pas trop à comprendre son rôle ... ou c'est juste le chemin pour choisir la bonne année? dans ma version je ne l'utilise pas parce que je n'avais pas besoin d'avoir l'année mais bon, j'aimerais comprendre pareil! :) Merci beaucoup !
Tu es vraiment de grand aide!
Ça fonctionne super bien!
vu que je ne voulais que nom et prénom j'ai un peu modifié
wget -qO - 'http://api.nobelprize.org/v1/prize.json' | jq --raw-output --arg annee "$1" --arg categorie "$2" '.prizes[]|select( .year == $annee and .category == $categorie ) | .laureates[] | .firstname+", "+.surname'
j'ai juste une petite question avant de mettre à résolu si c'est possible :)
pour ma compréhension..
dans jq --raw-output --arg Y 2005 --arg C physics '.prizes[]|select( .year == $Y and .category == $C ) | .year as $year | .laureates[] | $year+", "+.surname+", "+.firstname'
dans le select on initialise le .year et category mais après pourquoi on pipe ça à ... .year as $year
je n'arrive pas trop à comprendre son rôle ... ou c'est juste le chemin pour choisir la bonne année? dans ma version je ne l'utilise pas parce que je n'avais pas besoin d'avoir l'année mais bon, j'aimerais comprendre pareil! :) Merci beaucoup !
lEprofSonDkon
Messages postés
211
Date d'inscription
jeudi 13 décembre 2018
Statut
Membre
Dernière intervention
8 octobre 2022
13
17 avril 2019 à 22:40
17 avril 2019 à 22:40
si tu ne t'en sers pas, tu n'as pas à laisser cette partie.
ce que j'ai compris, c'est qu'on ne peut pas remonter dans la structure d'un fichier JSON.
ainsi, ça enregistre "au passage" une donnée pour la restituer plus tard.
LES BALISES CODE !!!! je me suis encore foulé la cornée à distinguer le code du texte. :(
ce que j'ai compris, c'est qu'on ne peut pas remonter dans la structure d'un fichier JSON.
ainsi, ça enregistre "au passage" une donnée pour la restituer plus tard.
LES BALISES CODE !!!! je me suis encore foulé la cornée à distinguer le code du texte. :(
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question