JSON 파일 형태로 config 를 처리하는 작업을 하는 것을 하다 보니 읽고 쓸 일이 있네.
간략하게 정리해둬 보자.
일단 JSON 파일을 아래 처럼 만들어 보았다.
{
"System": {
"version": "1.0.0",
},
}
이걸 읽어서 버전을 찍어주도록 하는 코드 예제는 아래와 같다.
self.config 에 읽은 정보가 다 들어오고,
배열, dict 형태로 접근해서 정보를 읽고 쓰면 된다.
업데이트는 아래 updateConfig 처럼 그냥 파일 열어서 JSON 객체를 json.dump로 쓰면 된다.
여기서 indent =4 를 주면 보기 좋게 되고, 안주면 쭉 붙여서 일렬로 문자열이 저장된다. 취향따라 하면 된다.
import os
import json
...
def readConfig(self, file_path):
with open(file_path, "r", encoding='utf-8') as json_file:
self.config = json.load(json_file)
print(self.config['System']['version'])
def updateConfig(self, file_path):
print(self.config)
with open(file_path, 'w', encoding='utf-8') as outfile:
json.dump(self.config, outfile, indent=4)
이글은 아래 글을 보고 참고하였습니다.
codechacha.com/ko/python-read-write-json-file/
이글도 잘 정리가 되어 있네요.
그리고, config 파일을 저장하는 방식에 대한 논의가 있을 수 있는데, 아래 글을 참고하면 좋을듯
emilkwak.github.io/python-setting-file-ext
나는 ini 파일 보단 JSON이 좋을 듯하여 선택, ini 파일은 설정 값이 없을때 처리가 exception으로 해야해서 활용하기 어려운 점이 있더라고......그냥 Null check 만 하면 좋은데 예외처리하려면 번거롭다 쩝
BJ.
'IT > 파이썬' 카테고리의 다른 글
파이썬 pyqt5 pyside2 윈도우 창 상태 - maximized 확인 (0) | 2021.02.02 |
---|---|
파이썬 JSON 읽기 에서 특정 키 가 있는지 먼저 확인하기 (0) | 2021.02.02 |
파이썬 윈도우 크기와 포지션 정보 가져오기 및 세팅하기 (0) | 2021.02.02 |
파이썬 Qt Designer 에서 Layout stretch 옵션 값 설정 (0) | 2021.02.01 |
파이썬 리소스 파일 py 파일로 변환하기 - pyside2 rcc (0) | 2021.01.28 |