Pythonで読めるJSONを生成する方法

JSONは扱いやすい形式ですが、文字列はUTF-8でエンコードされるため読めません。
読めるJSONを生成する方法を考えてみました。

import json

def main():
    recs = {
        "date": "2020-1-15",
        "data": [{"id": 1, "name": "アフリカゾウ"}, {"id": 2, "name": "イノシシ"}],
    }
    json_pure = json.dumps(recs)
    print("正しいJSON")
    print(json_pure)
    json_readable = json_dumps_readable(recs)
    print("読めるJSON")
    print(json_readable)
    recs_new = json.loads(json_readable)

def json_dumps_readable(recs):
    json_pure = json.dumps(recs)
    json_readable = json_pure.encode().decode("unicode_escape")
    json_readable = (
        json_readable.replace(" ", "")
        .replace(",", ",\n")
        .replace("{", "{\n")
        .replace("},\n{", "},{")
    )
    return json_readable

if __name__ == "__main__":
    main()

実行結果

正しいJSON
{“date”: “2020-1-15”, “data”: [{“id”: 1, “name”: “\u30a2\u30d5\u30ea\u30ab\u30be\u30a6”}, {“id”: 2, “name”: “\u30a4\u30ce\u30b7\u30b7”}]}
読めるJSON
{
“date”:”2020-1-15″,
“data”:[{
“id”:1,
“name”:”アフリカゾウ”},{
“id”:2,
“name”:”イノシシ”}]}

コメント

タイトルとURLをコピーしました