Re: [résolut] hs: petite aide avec jq pour afficher plusieurs valeurs
salut, > Au départ, je voulais faire du json, pour gérer les cas d'automatisation > mais je pourrais revoir ça si ça me prend trop la tête :) perso je pars du principe qu'il faut faire du TSV tant que c'est possible (et c'est le cas ici): c'est simple, c'est efficace, c'est universel. pour les strutures complexes: * soit j'ai besoin de perfs et je vais aller vers du cbor, msgpack, ... * soit je veux un truc puissant, lisible et aggréable à lire j'utilise gnu recutils ou yaml (selon les besoins). je n'utilise json que quand j'ai le malheur de devoir interagir avec un truc web et même là il m'arrive de faire de la conversion. j'ai ca dans mes libs sh: yaml2json () perl -MYAML -MJSON -0 -E 'say encode_json Load <>' "$@" json2yaml () perl -MYAML -MJSON -0 -E 'say Load encode_json <>' "$@" bon debut de semaine. marc
Re: [résolut] hs: petite aide avec jq pour afficher plusieurs valeurs
Le 16/08/2020 à 10:16, Marc Chantreux a écrit : > salut, > > > >> ce que j'aimerai pouvoir afficher: >> salon >> 25.7°C >> 64% > ben affiche l'humidity du coup. oui mais justement, je n'y arrivait pas :-) >> chambre >> 25.5°C >> 58% > jq -r ' > to_entries[]| > .key, > .value.temperature, > .value.humidity > ' c'était le .value avant le .humidity qui me manquait ... merci pour le coup de main :) j'avais tout testé, sauf ça. > >> P.S: je précise que je génère moi-même ce json. dans le cas ou il est >> mal formé, ne pas hésiter à me le signaler :) > pourquoi passer par json du coup? j'aurais tenance à utiliser un format > simple genre: > > salon 25.7°C 64% > chambre 25.7°C 64% Au départ, je voulais faire du json, pour gérer les cas d'automatisation mais je pourrais revoir ça si ça me prend trop la tête :) > c'est facile à traiter avec des outils standard (awk, perl, sh,...). au > final tu as quelque chose de > * plus souple > * plus efficace > * indépendant de jq > > bon dimanche merci, > marc Jerem
Re: hs: petite aide avec jq pour afficher plusieurs valeurs
salut, > ce que j'ai réussi a faire afficher: > $ cat /tmp/json.txt | jq -r 'to_entries[] | .key,.value .temperature' tu n'as pas besoin du cat: jq est un filtre jq -r 'to_entries[] | .key,.value .temperature' /tmp/json.txt jq -r ' to_entries[]| .key, .value.temperature, .value.humidity ' > ce que j'aimerai pouvoir afficher: > salon > 25.7°C > 64% ben affiche l'humidity du coup. > chambre > 25.5°C > 58% jq -r ' to_entries[]| .key, .value.temperature, .value.humidity ' > P.S: je précise que je génère moi-même ce json. dans le cas ou il est > mal formé, ne pas hésiter à me le signaler :) pourquoi passer par json du coup? j'aurais tenance à utiliser un format simple genre: salon 25.7°C 64% chambre 25.7°C 64% c'est facile à traiter avec des outils standard (awk, perl, sh,...). au final tu as quelque chose de * plus souple * plus efficace * indépendant de jq bon dimanche marc
hs: petite aide avec jq pour afficher plusieurs valeurs
bonjour, Tout d'abord désolé pour ce petit hs mais vu que je me prends la tête avec ça sans trouver de solution, je viens vous demander un peu d'aide. J'ai un json qui contient deux objets qui sont deux pièces, avec des valeurs que j'aimerai afficher en précisant de quelle pièce ça vient. le problème, je n'arrive pas a faire afficher plusieurs valeurs à la fois. le json brute ressemble à ça: {"salon":{"time":"2020-08-13 00:30","temperature":"25.7°C","humidity":"64%","battery":"100%"},"chambre":{"time":"2020-08-13 00:30","temperature":"25.5°C","humidity":"58%","battery":"100%"}} ce que j'ai réussi a faire afficher: $ cat /tmp/json.txt | jq -r 'to_entries[] | .key,.value .temperature' salon 25.7°C chambre 25.5°C ce que j'aimerai pouvoir afficher: salon 25.7°C 64% chambre 25.5°C 58% ça fait quelques jours que je suis sur le souci, mais rien à faire, je trouve pas. Merci d'avance pour votre aide, si vous avez une petite piste :) Jerem. P.S: je précise que je génère moi-même ce json. dans le cas ou il est mal formé, ne pas hésiter à me le signaler :)