3 \m ã @ s> d Z ddlZddlZddlZddlZdd„ Zedkr:eƒ dS )a Command-line tool to validate and pretty-print JSON Usage:: $ echo '{"json":"obj"}' | python -m json.tool { "json": "obj" } $ echo '{ 1.2:3.4}' | python -m json.tool Expecting property name enclosed in double quotes: line 1 column 3 (char 2) é Nc " C s d} d}t j| |d�}|jddt jƒ dd� |jddt jd ƒd d� |jddd dd� |jƒ }|jphtj}|jpttj }|j }|�V y$|r”tj|ƒ}ntj|t jd�}W n* tk rÐ } zt|ƒ‚W Y d d }~X nX W d Q R X |�" tj|||dd� |jdƒ W d Q R X d S )Nzpython -m json.toolzZA simple command line interface for json module to validate and pretty-print JSON objects.)ÚprogÚdescriptionÚinfileú?z-a JSON file to be validated or pretty-printed)ÚnargsÚtypeÚhelpÚoutfileÚwz%write the output of infile to outfilez--sort-keysÚ store_trueFz5sort the output of dictionaries alphabetically by key)ÚactionÚdefaultr )Zobject_pairs_hooké )Ú sort_keysÚindentÚ )ÚargparseÚArgumentParserÚadd_argumentZFileTypeÚ parse_argsr ÚsysÚstdinr Ústdoutr ÚjsonÚloadÚcollectionsÚOrderedDictÚ ValueErrorÚ SystemExitÚdumpÚwrite) r r ÚparserZoptionsr r r ÚobjÚe© r$ ú!/usr/lib64/python3.6/json/tool.pyÚmain s0 $r&