본문 바로가기
IT/파이썬

파이썬 JSON 파일 읽고 쓰기

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/

 

Python - JSON 파일 읽고 쓰는 방법

json.dump()로 dict를 JSON 파일로 저장하거나, json.load()로 JSON 파일을 읽어 dict 객체로 가져올 수 있습니다. 또한 데이터를 추가하고 다시 JSON 파일로 저장할 수 있습니다. indent 옵션을 인자로 주면 보

codechacha.com

이글도 잘 정리가 되어 있네요.

devpouch.tistory.com/33

 

Python에서 json파일 다루기 (읽기, 쓰기, 수정)

Python에서 json파일 다루기 (읽기, 쓰기, 수정) C 드라이브에 아래와 같은 json 형식의 파일이 있다고 가정해보자 C:\test.json { "K5": { "price": "5000", "year": "2015" }, "Avante": { "price": "3000", "ye..

devpouch.tistory.com

그리고, config 파일을 저장하는 방식에 대한 논의가 있을 수 있는데, 아래 글을 참고하면 좋을듯

emilkwak.github.io/python-setting-file-ext

 

Python과 궁합 맞는 설정 파일 4총사 - ini, json, yaml, py

Python, Pandas를 Excel보다 사랑하는 직장인을 위한 블로그

emilkwak.github.io

나는 ini 파일 보단 JSON이 좋을 듯하여 선택, ini 파일은 설정 값이 없을때 처리가 exception으로 해야해서 활용하기 어려운 점이 있더라고......그냥 Null check 만 하면 좋은데 예외처리하려면 번거롭다 쩝

 

BJ.

파일 인덱스

Mike 님의 사진, 출처: Pexels