não consegue encontrar documentação no json.tool [closed]

8

Eu posso encontrar artigos espalhados online que usam o json.tool para produzir um bonito python, 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 eu também vi posts que avisam que o json.tool nem sempre produz 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 no json.tool?

    
por Matt Rinehart 13.05.2016 / 19:59

1 resposta

15

Se você examinar a documentação formal da biblioteca JSON do Python, verá que a invocação de json.tool deve ser python -mjson.tool . Isto indica que o programa no arquivo tool.py sob o diretório json da sua instalação python, ou que está no arquivo __init__.py no diretório tool sob json em sua instalação python.

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

  • se não houver argumentos, ele funcionará como um canal: JSON in e JSON out
  • se houver um argumento tomado como arquivo de entrada JSON, a saída será 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 tem um parâmetro extra e lá 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
    
por 13.05.2016 / 20:20

Tags