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": "一二三"
}