-
Convertir la sortie d’une commande au format JSON
Pour récupérer la sortie d’une ligne de commande en JSON ou dictionnaires pour Python, JC est dispo en ligne de commande ou en lib Python. Vous pouvez ainsi rediriger avec un pipe la sortie d’une commande vers JC comme ceci en précisant le parseur dig (plein de parseurs disponibles) :
dig example.com | jc --dig [{"id":38052,"opcode":"QUERY","status":"NOERROR","flags":["qr","rd","ra"], "query_num":1,"answer_num":1,"authority_num":0,"additional_num":1, "opt_pseudosection":{"edns":{"version":0,"flags":[],"udp":4096}},"question": {"name":"example.com.","class":"IN","type":"A"},"answer":[{"name": "example.com.","class":"IN","type":"A","ttl":39049,"data":"93.184.216.34"}], "query_time":49,"server":"2600:1700:bab0:d40::1#53(2600:1700:bab0:d40::1)", "when":"Fri Apr 16 16:09:00 PDT 2021","rcvd":56,"when_epoch":1618614540, "when_epoch_utc":null}]
On peut même l’enchainer avec la commande jq comme ceci pour récupérer simplement une info :
dig example.com | jc --dig | jq -r '.[].answer[].data'
Il y a même une démo en ligne si vous voulez tester avec d’installer.
Lien : dépôt Github ici.