não consigo encontrar a documentação em json.tool [fechado]


12

Posso encontrar artigos dispersos online que usam json.tool para produzir python bonito, mas nenhuma documentação clara sobre o uso. Eu verifiquei docs.python. mas não há documentação formal do json.tool.

Eu tenho alguns fluxos de trabalho (escritos por outras pessoas) que usam o json.tool para validar o json, mas também vi postagens que avisam que o json.tool nem sempre produz um json válido. Então, eu quero entender mais sobre como o json.tool funciona.

Alguém pode recomendar algum lugar com documentação clara e abrangente sobre o json.tool?

Respostas:


21

Se você examinar a documentação formal da biblioteca JSON python, verá que a chamada de json.tooldeve ser python -mjson.tool. Isso indica que o programa no arquivo tool.pyno jsondiretório da instalação do python ou que ele está no arquivo __init__.pydo tooldiretório jsonda instalação do python.

O arquivo é realmente o primeiro dos dois e sua main()função é <20 linhas de código que podem ser facilmente analisadas:

  • se não houver argumentos, ele funciona como um canal: JSON in e JSON out
  • se houver um argumento usado como arquivo de entrada JSON, envie para stdout
  • existem dois argumentos: o primeiro é o arquivo de entrada JSON; o segundo, o arquivo de saída JSON

Se você fornecer mais parâmetros, ele realmente mostrará o uso:

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

Isso é para a versão 2.7 da ferramenta. A versão 3.5.1 possui um parâmetro extra e os parâmetros são mostrados se você usar -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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.