Python JSON整形

Python JSON を読みやすく整形
json パッケージの dumps を使えばインデント指定で整形してくれる。

import json

sample = '{"a":1,"set":{"type":"A","items":["apple","lemon","orange"]},"price":1200}'

data = json.loads(sample)
text = json.dumps(data, indent=2)

print(text)

結果、

{
  "a": 1,
  "set": {
    "type": "A",
    "items": [
      "apple",
      "lemon",
      "orange"
    ]
  },
  "price": 1200
}

HTTPリクエスト受け取った JSON を整形するなら、
以下のように使う

# -*- coding: utf-8 -*-
import urllib.request
import json

http_request = urllib.request.Request('http://xxxx.xxxx.xxx/aaaaa')

with urllib.request.urlopen(http_request) as res:
    stscode = res.getcode()
    body = res.read().decode('utf-8')
    print( json.dumps(json.loads(body), indent=2) )

↑このように、HTTP応答を読んだ時、dumps を実行した結果、中身の2バイト文字が
\u3042 のようにユニコードでの print 表示になってしまう。
そういう場合は、dumps メソッドに、ensure_ascii というデフォルト True の引数があるので
ensure_ascii=False を付ける

    print( json.dumps(json.loads(body), indent=2, ensure_ascii=False) )