【Python】jsonファイルを新規作成して書き込む

スポンサーリンク

Pythonでは jsonファイルを新規作成して書き込むことができます。

WEBデータのやりとりでよく使用されるjson形式のjsonファイルがあります。以前はXMLが主流でしたが、現在の主流はこのjsonです。

jsonはPythonでいうところのdictionaryです。キーと値がセットになった配列のことですね。

今回は、Pythonでjsonファイルを新規作成して書き込む方法を解説します!

Pythonでjsonファイルを書き込む

jsonファイルを書き込む(新規作成)

import json

str = {
    "東京":{
        "population": 1300,
        "capital": "東京"
    },
    "北海道":{
        "population": 538,
        "capital": "札幌市"
    },
    "沖縄":{
        "population": 143,
        "capital": "那覇市"
    }
}

with open('C:\pg\population.json', 'w') as f:
    json.dump(str, f, ensure_ascii=False)

Pythonでjsonファイルを読み込むには、jsonをインポートします。

まずは、jsonファイルのパスを指定してopenします。オプションに「w」を設定して書き込みモードにします。

jsonへの書き込みは、json.dumpで行います。第一引数は事前に定義した辞書型の変数を指定します。第二引数は書込みモードでオープンしたjsonファイルです。

ここでは日本語を含めたjsonファイルになるので、さらにオプションとして「ensure_ascii=False」を追加しました。

Pythonからjsonファイルを新規に作成して書き込みすることができました。

新規作成したjsonファイル

{"東京": {"population": 1300, "capital": "東京"}, "北海道": {"population": 538, "capital": "札幌市"}, "沖縄": {"population": 143, "capital": "那覇市"}}

上のコードで作成したjsonファイルはこちらです。すべてつながってしまいました。見栄えがよくないですね。

jsonファイルを書き込む(インデントあり)

with open('C:\pg\population.json', 'w') as f:
    json.dump(str, f, ensure_ascii=False, indent=4)

json.dumpのオプションに indent=4 を追加しました。これでjsonがインデントされます。

新規作成したjsonファイル(インデントあり)

{
    "東京":{
        "population": 1300,
        "capital": "東京"
    },
    "北海道":{
        "population": 538,
        "capital": "札幌市"
    },
    "沖縄":{
        "population": 143,
        "capital": "那覇市"
    }
}

上のコードで作成したjsonファイルはこちらです。今後はキレイにインデントされ、見栄えがよくなりました。

これでPythonからjsonファイルを新規作成して、任意のjson形式のデータを書き込むことができました。

参考ページhttps://docs.python.jp/3/library/json.html?highlight=json#module-json

以上、Pythonでjsonファイルを新規作成して書き込む方法でした。

コメント