From 87acedf84300787c7cc1009055e361eb500212f6 Mon Sep 17 00:00:00 2001 From: KWON Date: Mon, 7 Jul 2025 10:38:42 +0900 Subject: [PATCH] =?UTF-8?q?=EC=B5=9C=EB=8C=80=20=EC=9A=94=EC=B2=AD?= =?UTF-8?q?=EA=B0=92=20500=20>=201,000=20=EC=97=85=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=8A=B8,=20API=20KEY=EB=8A=94=20=EC=A2=85=EA=B4=80=EA=B8=B0?= =?UTF-8?q?=EC=83=81=EA=B4=80=EC=B8=A1=EA=B3=BC=20=EB=8F=99=EC=9D=BC?= =?UTF-8?q?=ED=95=98=EB=AF=80=EB=A1=9C=20=EB=B3=91=ED=95=A9=EC=B2=98?= =?UTF-8?q?=EB=A6=AC,=20=EC=A7=80=EC=97=AD=20=EC=84=A4=EC=A0=95=EC=9D=84?= =?UTF-8?q?=20config.yaml=EC=97=90=EC=84=9C=20=ED=95=A0=20=EC=88=98=20?= =?UTF-8?q?=EC=9E=88=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/air_quality.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/air_quality.py b/lib/air_quality.py index 5dd7d75..3b7ed2f 100644 --- a/lib/air_quality.py +++ b/lib/air_quality.py @@ -11,11 +11,11 @@ from lib import db from lib import db_schema -def test_num_of_rows(api_key, station_name='운정', date_str=None): +def test_num_of_rows(api_key, station_name, date_str=None): if date_str is None: date_str = (datetime.now() - timedelta(days=1)).strftime('%Y%m%d') - max_rows = 500 + max_rows = 1000 min_rows = 100 while max_rows >= min_rows: @@ -43,7 +43,7 @@ def test_num_of_rows(api_key, station_name='운정', date_str=None): print("[WARN] 최소 numOfRows 값(100)도 실패했습니다. 기본값 100 사용") return 100 -def fetch_air_quality_data_range(start_date_str, end_date_str, api_key, num_of_rows=100, station_name='운정', page_no=1): +def fetch_air_quality_data_range(start_date_str, end_date_str, api_key, station_name, num_of_rows=100, page_no=1): url = "http://apis.data.go.kr/B552584/ArpltnStatsSvc/getMsrstnAcctoRDyrg" params = { 'serviceKey': api_key, @@ -122,7 +122,8 @@ def get_latest_date(conn, table): def main(): config = db.load_config() - api_key = config['air_quality_api']['service_key'] + api_key = config['DATA_API']['serviceKey'] + station_name = config['DATA_API']['air']['station_name'] debug = config.get('debug', False) force_update = config.get('force_update', False) @@ -132,7 +133,7 @@ def main(): with engine.connect() as conn: trans = conn.begin() try: - start_date = datetime.strptime("2017-01-01", "%Y-%m-%d").date() + start_date = datetime.strptime("2020-01-01", "%Y-%m-%d").date() end_date = (datetime.now() - timedelta(days=1)).date() optimal_num_rows = test_num_of_rows(api_key, date_str=start_date.strftime('%Y%m%d')) @@ -151,7 +152,7 @@ def main(): if debug: print(f"[DEBUG] {start_str} ~ {end_str} 데이터 요청 중...") - items = fetch_air_quality_data_range(start_str, end_str, api_key, num_of_rows=optimal_num_rows) + items = fetch_air_quality_data_range(start_str, end_str, api_key, station_name, num_of_rows=optimal_num_rows) if items: save_data_to_db(items, conn, table, force_update=force_update, debug=debug)