本記事の背景
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)