[Python] JSONファイルの読み書き

アイキャッチPythonカテゴリ

よく使うのによく忘れるのでまとめておく。
試したPythonのバージョンは「Python 3.8.7」

(スポンサーリンク)
目次

JSONファイルの読み込み

こんなJSONを読み込んでみる。

{
    "data1": 1,
    "data2": "test",
    "data3": [1,2,3],
    "data4":{
        "data4_1": true,
        "data4_2": null,
        "data4_3": "あいうえお"
    }
}

JSONデータはdictionary形式で読み込まれる。
UnicodeDecodeError」がでたらopenの引数に「encoding=’utf-8’」を指定してみる。

import json

# JSONファイルを読み込む
with open('test.json', 'r', encoding='utf-8') as f:
    dic_json = json.load(f)

# 読み込んだJSONデータを画面に出力
print(dic_json['data1'])
print(dic_json['data2'])
print(dic_json['data3'])
print(dic_json['data4'])
print(dic_json['data4']['data4_1'])
print(dic_json['data4']['data4_2'])
print(dic_json['data4']['data4_3'])

JSONファイルの書き込み

dictionaryに出力したいデータを詰め込んでjson.dumpする。
日本語が含まれる場合はensure_asciiをFalseにする。
indentにはインデントするときに半角スペースを何個入れるかを指定できる。

import json

# JSONに出力したいデータをdictionaryで用意
dic_json = {
    "data1": 1,
    "data2": "test",
    "data3": [1,2,3],
    "data4":{
        "data4_1": True,
        "data4_2": None,
        "data4_3": "あいうえお"
    }
}

# JSONファイルを書き込む
with open('test2.json', 'w', encoding='utf-8') as f:
    json.dump(dic_json, f, indent=4, ensure_ascii=False)

こんなのが出力される。

{
  "data1": 1,
  "data2": "test",
  "data3": [
    1,
    2,
    3
  ],
  "data4": {
    "data4_1": true,
    "data4_2": null,
    "data4_3": "あいうえお"
  }
}
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次