Pretty Print JSON Without Python — When the Browser Is Faster
Table of Contents
Python's json.dumps(data, indent=2) and python3 -m json.tool are the classic ways to pretty-print JSON. They work great. But for quick one-off formatting when you have JSON from an API, a log, or a clipboard — the browser is faster. No terminal, no piping, no file handling.
Paste your JSON into the WildandFree JSON Formatter and click Format. Done.
Python Pretty Print vs Browser Tool — Speed Comparison
Let's compare a typical use case: you have an API response from a curl command and you want to read it.
With Python:
- Open terminal
- Type
echo '[your json]' | python3 -m json.tool(or copy-paste the JSON into the terminal, hoping there are no special characters that break the shell) - Read the output in the terminal
With the browser formatter:
- Switch to the browser tab (or open a new one)
- Paste JSON, click Format
- Read the output
The Python approach is faster when you're already in the terminal and the JSON is coming from a piped command. The browser approach is faster when you have JSON on your clipboard from any source. Most developers switch between both based on context — and that's exactly right.
Python JSON Pretty Print — Quick Reference for When You're in the Terminal
Pretty print a Python dict:
import json
print(json.dumps(my_dict, indent=2))
Pretty print from a string:
print(json.dumps(json.loads(json_string), indent=2))
Format a file from command line:
python3 -m json.tool input.json
Format piped input:
cat input.json | python3 -m json.tool
Format curl output:
curl -s https://api.example.com/data | python3 -m json.tool
Sort keys alphabetically:
print(json.dumps(data, indent=2, sort_keys=True))
Change indent to 4 spaces (Python default):
print(json.dumps(data, indent=4))
Cases Where the Browser Formatter Beats Python
You're not in a terminal: If your JSON came from a Slack message, an email, a documentation page, or a spreadsheet, opening a terminal just to format it is overhead. The browser is where you already are.
The JSON has special characters that break shell parsing: Copying JSON into a terminal command is risky — shell metacharacters, newlines, and quotes can corrupt the data before Python sees it. Paste into a browser text area instead.
You want to validate at the same time: Python's json.tool validates JSON as a side effect of parsing it, but the error messages are terse. The browser formatter shows you the exact location of syntax errors more clearly.
You're on Windows without WSL: The Windows terminal experience is less smooth for piping JSON. The browser formatter works identically on every OS.
You need to share the formatted JSON: Copy from the browser result and paste into your document, email, or PR. The terminal output requires extra steps to capture.
Python vs jq vs Browser Tool — Which to Use When
| Situation | Best Tool |
|---|---|
| JSON from curl output in terminal | Python json.tool or jq pipe |
| JSON on clipboard from anywhere | Browser formatter |
| Format JSON in a Python script | json.dumps(data, indent=2) |
| Filter or transform JSON data | jq (the clear winner for this) |
| Quick one-off read during debugging | Browser formatter |
| Automated formatting in CI/CD | Python or jq in scripts |
| Format + validate + minify in one place | Browser formatter |
Use the right tool for the context. Python is best in Python scripts. jq is best for terminal pipelines and JSON transformation. The browser formatter is best when you have clipboard JSON and just need to read it quickly.
Try It Free — No Signup Required
Runs 100% in your browser. No data is collected, stored, or sent anywhere.
Open Free JSON FormatterFrequently Asked Questions
What is the Python command to pretty print JSON?
From the command line: python3 -m json.tool input.json. In Python code: import json; print(json.dumps(data, indent=2)). To format a JSON string: print(json.dumps(json.loads(json_string), indent=2)).
Does python3 -m json.tool validate JSON?
Yes, as a side effect. json.tool parses the JSON before formatting it, so any syntax error will cause it to exit with an error message. But the error messages are minimal — a browser-based validator gives you more context.
How do I pretty print JSON in Python with custom indentation?
Use json.dumps(data, indent=N) where N is the number of spaces. indent=2 gives 2-space indentation, indent=4 gives 4-space. You can also use indent="\t" for tab indentation.

