JC, convertit la sortie d’outils en ligne de commande populaires en JSON
(github.com/kellyjonbrazil)Résumé du convertisseur JSON JC
jcconvertit en JSON la sortie d’outils CLI, de types de fichiers et de chaînes génériques afin de la rendre plus facile à parser dans des scripts.- Un exemple avec la commande
digpermet de voir la sortie convertie au format JSON, qui peut ensuite être retraitée avec des outils commejqoujello. - Il peut aussi être utilisé comme bibliothèque Python ; dans ce cas, il renvoie à la place de JSON un dictionnaire Python, une liste de dictionnaires ou un itérable paresseux de dictionnaires.
Comment installer le convertisseur JSON JC
- Installation possible via
pip, les dépôts de paquets de l’OS ou le téléchargement de binaires. - Des commandes d’installation sont fournies pour plusieurs distributions Linux, macOS et FreeBSD.
Comment utiliser le convertisseur JSON JC
- Reçoit une entrée transmise via un pipe depuis
STDINet produit surSTDOUTla sortie de la commande précédente au format JSON. - Une syntaxe « magique » permet d’ajouter
jcdevant une commande pour la convertir, ou devant un chemin de fichier/proc. - Diverses options de parseur et fonctions de découpage permettent d’ajuster le format de sortie et de traiter des lignes spécifiques.
Caractéristiques du convertisseur JSON JC
- Fournit des représentations de données par défaut et brutes, et convertit selon le schéma les nombres connus en valeurs JSON int/float.
- L’option
--rawou le paramètreraw=Truepermet d’accéder au JSON brut et prétraité. - Les parseurs en streaming permettent de traiter efficacement en mémoire de gros volumes de sortie de commandes.
Pourquoi le convertisseur JSON JC est important
- Les billets de blog et interviews montrent la motivation du projet, qui vise à appliquer la philosophie Unix au XXIe siècle, ainsi que ses cas d’usage.
- Très utile pour parser la sortie de commandes dans des environnements variés comme les scripts Bash, Ansible, Saltstack, Nornir et FortiSOAR.
Compatibilité du convertisseur JSON JC
- Certains parseurs fonctionnent indépendamment de la plateforme, tandis que ceux qui convertissent des sorties spécifiques à une plateforme peuvent générer des avertissements de compatibilité.
- Toutes les informations sur les parseurs sont disponibles avec
jc -ap.
Comment contribuer au convertisseur JSON JC
- Les contributions pour ajouter ou améliorer du code ou des parseurs sont bienvenues ; il est possible de soumettre une pull request en utilisant
jc/parsers/foo.pyoujc/parsers/foo_s.pycomme modèles.
L’avis de GN⁺
Le point le plus important ici est que jc permet de convertir en JSON la sortie de nombreuses commandes, de types de fichiers et de chaînes, afin de pouvoir les traiter de manière programmatique. Cela aide les développeurs à manipuler les données plus facilement, en particulier lors du scripting dans des environnements Unix et Linux. Cet article est intéressant parce que jc est un outil capable d’améliorer fortement l’automatisation et l’efficacité dans le développement logiciel et l’administration système.
1 commentaires
Avis Hacker News
Résolution du problème de conversion de la sortie de commandes au format JSON sous FreeBSD à l’aide de la bibliothèque
libxolsétait prise en charge, mais il existe des cas où cela a été supprimé--jsonest également soulevée pour Unix/LinuxExpression d’inquiétudes concernant la difficulté de maintenance
--<CMD>peut compliquer les aides/manuelsPrésentation d’un outil appelé Nushell
Évaluation positive du fait que les outils CLI prennent en charge une sortie JSON
Avis sur l’utilisation de l’outil
jcjc dig example.comdevrait être l’usage principal, plutôt quedig example.com | jc --digExpression d’une préférence pour le fait que toute sortie soit un objet dans PowerShell
Expression de respect envers la personne qui assure la maintenance de l’outil
jcQuestion sur la liste des outils de commande Unix modernes qui acceptent l’option
--jsonRemarque sur un défaut de conception d’Unix
Surprise de voir que
textfsmn’a pas été utilisétextfsmest largement utilisé pour analyser la sortie CLI des équipements réseau