3
0

本記事の背景

jsonファイルはWebをはじめ、IoT、アプリケーションの設定などでいろんな場面で使われているため、本記事はPythonでjsonファイルを扱うための基本的な知識をおさらいする

完成形

クラス実装のソースコードは以下です。
なお、VSCode上、jsonの内容に日本語が含まれている場合は、文字化けする

import os,json

class Config():
    # ファイルパスの設定
    def __init__(self) -> None:
        # カテゴリー情報を管理するJson
        self.category_info = os.path.join(os.getcwd(), 'category_info.json')
    # jsonファイルを取得する
    def get_json_info(self):
        with open(self.category_info, mode='r', encoding='utf-8') as json_file:
            return json.load(json_file)
    # jsonファイルを更新する
    def set_json_info(self, category_key, category_value):
        try:
            # jsonファイルの読み込み
            with open(self.category_info,'r', encoding='cp932') as json_file:
                json_data = json.load(json_file)
                json_data[category_key] = category_value
            # jsonファイルの更新
            with open(self.category_info, 'w', encoding='cp932') as json_file:
                json.dump(json_data, json_file, indent=4)
        except:
            print('jsonファイル更新失敗しました。')
    # イニシャライズ
    def initial_json(self):
        json_data = {
            "category_01": "生活"
        }
        with open(self.category_info, 'w', encoding='cp932') as json_file:
                json.dump(json_data, json_file, indent=4)

if __name__ == '__main__':
    ins = Config()
    ins.initial_json()
    print(ins.get_json_info())
    ins.set_json_info('category_02','学校')
    d = list(ins.get_json_info().values())
    print(d)

jsonと辞書型の変換

実際のjsonデータは辞書型で構成されているため、辞書型に変換したり、リストに変換したりするので、以下でよく使う事例を示す.

if __name__ == '__main__':
    ins = Config()
    # keyをListとして取り出す
    k = list(ins.get_json_indo().keys())
    print(k)
    # valueをListとして取り出す
    v = list(ins.get_json_info().values())
    print(d)
3
0
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
3
0