0
0
PythonHow-ToBeginner · 3 min read

How to Sort JSON by Key in Python Quickly and Easily

To sort JSON by key in Python, first load the JSON string into a dictionary using json.loads(). Then use json.dumps() with the sort_keys=True argument to output a JSON string sorted by keys.
📐

Syntax

Use json.loads() to convert a JSON string to a Python dictionary. Then use json.dumps() with sort_keys=True to convert it back to a JSON string sorted by keys.

  • json.loads(json_string): Parses JSON string to dict.
  • json.dumps(dict_obj, sort_keys=True): Converts dict to JSON string with keys sorted.
python
import json

json_string = '{"b": 1, "a": 2}'
data = json.loads(json_string)
sorted_json = json.dumps(data, sort_keys=True)
print(sorted_json)
Output
{"a": 2, "b": 1}
💻

Example

This example shows how to sort a JSON string by its keys alphabetically and print the sorted JSON string.

python
import json

# Original JSON string with unsorted keys
json_string = '{"name": "Alice", "age": 30, "city": "New York"}'

# Convert JSON string to Python dictionary
data = json.loads(json_string)

# Convert dictionary back to JSON string with keys sorted
sorted_json = json.dumps(data, sort_keys=True, indent=2)

print(sorted_json)
Output
{ "age": 30, "city": "New York", "name": "Alice" }
⚠️

Common Pitfalls

One common mistake is trying to sort the JSON string directly without parsing it first. JSON strings are just text and cannot be sorted without converting to a Python dictionary.

Another pitfall is forgetting to use sort_keys=True in json.dumps(), which means the output JSON will not be sorted.

python
import json

# Wrong way: sorting string directly (does not work)
json_string = '{"b": 1, "a": 2}'
try:
    sorted_string = sorted(json_string)
    print(''.join(sorted_string))
except Exception as e:
    print(f'Error: {e}')

# Right way: parse then dump with sort_keys
data = json.loads(json_string)
sorted_json = json.dumps(data, sort_keys=True)
print(sorted_json)
Output
Error: 'str' object is not callable {"a": 2, "b": 1}
📊

Quick Reference

  • Use json.loads() to parse JSON string to dictionary.
  • Use json.dumps() with sort_keys=True to get sorted JSON string.
  • Use indent in json.dumps() for readable output.

Key Takeaways

Always parse JSON string to a dictionary before sorting keys.
Use json.dumps() with sort_keys=True to get JSON sorted by keys.
Sorting JSON strings directly as text does not work.
Use indent parameter in json.dumps() for pretty printing sorted JSON.