辞書型のデータをJSONファイル出力( json.dump )

pythonで、辞書(dictionary)型のデータをJSONファイル出力したい場合、json.dumpで実現できます。

json.dumpの引数の違いによる変化を、簡単なコードで動作確認します。

目次

確認コード

以下、動作確認コードです。

import json

dict = {
    "aaa": 123,
    "bbb": "123",
    "ccc": "あいうえお",
    "ddd": "一二三",
}

path1 = './test1.json'
json_file1 = open(path1, mode="w")
json.dump(dict, json_file1)
json_file1.close()

path2 = './test2.json'
json_file2 = open(path2, mode="w")
json.dump(dict, json_file2, ensure_ascii=False)
json_file2.close()

path3 = './test3.json'
json_file3 = open(path3, mode="w")
json.dump(dict, json_file3, indent=2, ensure_ascii=False)
json_file3.close()

json.dump で、PythonのデータをJSON形式の文字列に変換して、指定ファイルに書き込みをしています。

実行結果

json.dump で、3パターンの引数の指定方法しましたが、それぞれ以下JSONファイルが出力されました。

{"aaa": 123, "bbb": "123", "ccc": "\u3042\u3044\u3046\u3048\u304a", "ddd": "\u4e00\u4e8c\u4e09"}

デフォルトだと、エスケープされます。

test2.json は、 ensure_ascii=False を指定したため、エスケープされていません。

{"aaa": 123, "bbb": "123", "ccc": "あいうえお", "ddd": "一二三"}

test3.json のようにインデントを入れることも可能です。

{
  "aaa": 123,
  "bbb": "123",
  "ccc": "あいうえお",
  "ddd": "一二三"
}

参考

https://docs.python.org/3/library/json.html

よかったらシェアしてね!
目次