2
1

【Python3】JSON形式ファイルの読み書き方法

Posted at

JSON形式ファイルの読み取り

●今回使用するサンプルファイル
di.json
{
    "name": "Google Inc",
    "url": "https://www.google.com",
    "staffs": [
        {"name": "田中", "age": 40},
        {"name": "佐藤", "age": 60}
    ]
}
●json.loadを使ってファイルを読み取る
di_read.py
import json

with open(r'C:\Users\User\Desktop\python3_practice\di_read.json', encoding="utf-8") as f:
    di = json.load(f)
    
print(di['name'])
print(di['url'])
print(di['staffs'])


# <出力結果>
# Google Inc
# https://www.google.com
# [{'name': '田中', 'age': 40}, {'name': '佐藤', 'age': 60}]

★処理概要
1.jsonモジュールをインポートする。
2.open関数を使って対象ファイルを開く。
  ※第二引数に対象ファイルの文字コードを指定しないと、文字化けが発生する。
3.json.loadメソッドを使用し、2で開いたファイルの読み込みを行い、変数に代入する。
4.3の戻り値は辞書型となるため、キーを指定して値にアクセスする。

JSON形式ファイルへの書き出し

●読み込んだファイルを別のjsonファイルに書き出す
di_write.py
import json

# jsonファイルの読み取り(上のサンプルと同じ)
with open(r'C:\Users\User\Desktop\python3_practice\di_read.json', encoding="utf-8") as f:
    di = json.load(f)

# 読み取ったファイルをtemp.jsonへ書き込み
with open(r'C:\Users\User\Desktop\python3_practice\tmp.json', 'wt') as f:
    json.dump(di, f, indent=2, ensure_ascii=False)

# temp.jsonの読み込み
with open(r'C:\Users\User\Desktop\python3_practice\tmp.json') as f:
    print(f.read())
●書き出したファイルの内容
tmp.json
{
  "name": "Google Inc",
  "url": "https://www.google.com",
  "staffs": [
    {
      "name": "田中",
      "age": 40
    },
    {
      "name": "佐藤",
      "age": 60
    }
  ]
}

★処理概要
1.jsonモジュールをインポートする。
2.open関数を使って書き込み"元"のファイルを読み取る。
  ※第二引数に対象ファイルの文字コードを指定しないと、文字化けが発生する。
3.open関数を使って書き込み"先"のファイルを開く。
4.json.dumpメソッドを使用し、書き込みを行う。
  ※json.dump(読み取ったファイル, 書き込み先ファイル, 書き込み時のインデント数, 非ASCII文字のエスケープ)
  インデント数や非ASCII文字のエスケープ等のキーワード引数は任意。

まとめ

・jsonモジュールを使用することで、簡単に読み書き操作ができる。
・キーワード引数を指定することで、文字化けを防いだり、見やすい形式で出力できる。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1