Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

hs: petite aide avec jq pour afficher plusieurs valeurs

1 réponse
Avatar
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 :)

1 réponse

Avatar
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