본문 바로가기

Dev/Python

json파일로부터 설정값을 읽어들이는 python code

https://woongbinni.tistory.com/entry/Python%EA%B3%BC-%ED%8B%B0%EC%8A%A4%ED%86%A0%EB%A6%AC-API%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%98%EC%97%AC-%EA%B8%80%EC%9D%84-%EC%9E%91%EC%84%B1%ED%95%98%EA%B8%B0-%EA%B0%9C%EC%84%A0%ED%8C%90?category=861369

 

Python과 티스토리 API를 활용하여 글을 작성하기 - 개선판

https://woongbinni.tistory.com/entry/Python%EA%B3%BC-%ED%8B%B0%EC%8A%A4%ED%86%A0%EB%A6%AC-API%EB%A5%BC-%ED%99%9C%EC%9A%A9%ED%95%98%EC%97%AC-%EA%B8%80%EC%9D%84-%EC%9E%91%EC%84%B1%ED%95%98%EA%B8%B0?ca..

woongbinni.tistory.com

 위 포스팅을 한 후에 config code에 대한 문의가 몇 건 정도 있었다. 주식종목분석기 프로그램의 경우도 python을 이용해 개발한 single application인데, 프로그램을 시작하기에 앞서, 따로관리해야할 민감정보같은 경우는 config.json 파일로 만들어놓고 그 파일을 config.py가 읽어들여 어플리케이션을 시작하도록 하였다. 간단한 어플리케이션을 짤때 꽤 유용한 코드다.

1. config.json

- 따로 저장할 민감정보들은 아래와 같이 JSON 형태로 저장해두고.. 

{
  "DATABASE": {
    "DBMS": "postgres",
    "HOST": "localhost",
    "PORT": "5432",
    "DB_NAME": "database_name",
    "USERNAME" : "database_username",
    "PASSWORD" : "database_password"
  }
  ...
}

 

2. config.py

- 아래와같이 불러서 사용하면 된다.

import json
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

## read config json file
with open('config/config.json', 'r') as f:
    config = json.load(f)

db_string = config["DATABASE"]["DBMS"] + "://" \
            + config["DATABASE"]["USERNAME"] + ":" \
            + config["DATABASE"]["PASSWORD"] + "@" \
            + config["DATABASE"]["HOST"] + ":" \
            + config["DATABASE"]["PORT"] + "/" \
            + config["DATABASE"]["DB_NAME"]

db = create_engine(db_string)
base = declarative_base()
Session = sessionmaker(db)