nie mogę znaleźć dokumentacji na json.tool [zamknięte]


12

Mogę znaleźć rozproszone artykuły online, które używają json.tool do tworzenia ładnego Pythona, ale nie ma jasnej dokumentacji na temat użycia. Sprawdziłem docs.python. ale nie ma formalnej dokumentacji pliku json.tool.

Mam kilka przepływów pracy (napisanych przez inne osoby), które używają json.tool do sprawdzania poprawności json, ale widziałem także posty, które ostrzegają, że json.tool nie zawsze generuje prawidłowego json. Chcę więc dowiedzieć się więcej o tym, jak działa json.tool.

Czy ktoś może polecić gdzieś z jasną, kompleksową dokumentacją na json.tool?

Odpowiedzi:


21

Jeśli przejrzysz formalną dokumentację biblioteki JSON Pythona, zobaczysz, że wywołanie json.toolpowinno być python -mjson.tool. Wskazuje to, że program w pliku tool.pyw jsonkatalogu instalacji Pythona lub że znajduje się w pliku __init__.pyw toolkatalogu jsoninstalacji Pythona.

Plik jest tak naprawdę pierwszym z nich, a jego main()funkcją jest <20 linii kodu, które można łatwo przeanalizować:

  • jeśli nie ma argumentów, działa jak potok: JSON wchodzi i JSON wychodzi
  • jeśli istnieje jeden argument, który jest traktowany jako plik wejściowy JSON, wypisuje na standardowe wyjście
  • istnieją dwa argumenty, pierwszy to plik wejściowy JSON, drugi to plik wyjściowy JSON

Jeśli podasz więcej parametrów, faktycznie pokaże użycie:

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

Dotyczy to wersji narzędzia 2.7. Wersja 3.5.1 ma dodatkowy parametr i tam parametry są wyświetlane, jeśli używasz -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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.