impossible de trouver de la documentation sur json.tool [fermé]

12

Je peux trouver des articles dispersés en ligne qui utilisent json.tool pour produire du joli python, mais aucune documentation claire sur l'utilisation. J'ai vérifié docs.python. mais il n'y a pas de documentation formelle de json.tool.

J'ai quelques flux de travail (écrits par d'autres personnes) qui utilisent json.tool pour valider json, mais j'ai également vu des articles qui avertissent json.tool ne produit pas toujours un json valide. Je veux donc en savoir plus sur le fonctionnement de json.tool.

Quelqu'un peut-il recommander quelque part une documentation claire et complète sur json.tool?

Matt Rinehart
la source

Réponses:

21

Si vous parcourez la documentation formelle de la bibliothèque JSON python, vous voyez que l'invocation de json.tooldevrait être python -mjson.tool. Cela indique que le programme dans le fichier tool.pysous le jsonrépertoire de votre installation python, ou qu'il est dans le fichier __init__.pydans le toolrépertoire sous jsondans votre installation python.

Le fichier est en fait le premier des deux et sa main()fonction est <20 lignes de code qui peuvent être facilement analysées:

  • s'il n'y a pas d'arguments, il fonctionne comme un canal: entrée JSON et sortie JSON
  • s'il y a un argument pris comme fichier d'entrée JSON, sortie vers stdout
  • il y a deux arguments le premier est le fichier d'entrée JSON, le second le fichier de sortie JSON

Si vous fournissez plus de paramètres, il affichera réellement l'utilisation:

$ python -m json.tool a b c
/opt/python/2.7.11/lib/python2.7/json/tool.py [infile [outfile]]

C'est pour la version 2.7 de l'outil. La version 3.5.1 a un paramètre supplémentaire et là les paramètres sont affichés si vous utilisez -h:

$ python -m json.tool -h

usage: python -m json.tool [-h] [--sort-keys] [infile] [outfile]

A simple command line interface for json module to validate and pretty-print
JSON objects.

positional arguments:
  infile       a JSON file to be validated or pretty-printed
  outfile      write the output of infile to outfile

optional arguments:
  -h, --help   show this help message and exit
  --sort-keys  sort the output of dictionaries alphabetically by key
Anthon
la source