Re: [résolut] hs: petite aide avec jq pour afficher plusieurs valeurs

2020-08-16 Par sujet Marc Chantreux
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

2020-08-16 Par sujet Jérémy Prego
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

2020-08-16 Par sujet Marc Chantreux
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

2020-08-15 Par sujet Jérémy Prego
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 :)