From 0864158b5cc297dadc5e7bd94e199acd2f753b40 Mon Sep 17 00:00:00 2001 From: happycastle <41810556+happycastle114@users.noreply.github.com> Date: Fri, 17 Nov 2023 14:51:27 +0900 Subject: [PATCH] feat(add) key --- API/candidate.py | 4 +++- API/elected.py | 9 ++++----- API/utils.py | 20 +++++++++++++++++++- 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/API/candidate.py b/API/candidate.py index 7ec6743..a983e06 100644 --- a/API/candidate.py +++ b/API/candidate.py @@ -7,7 +7,7 @@ import argparse from configurations.secrets import OpenDataPortalSecrets -from .utils import save_to_excel +from .utils import save_to_excel, getLocalMetroMap BASE_URL = "http://apis.data.go.kr/9760000/PofelcddInfoInqireService/getPofelcddRegistSttusInfoInqire" @@ -84,6 +84,8 @@ def fetch_all_data( drop_columns = args.drop_columns.split(",") if args.drop_columns else [] data_list = fetch_all_data(sgIds, args.sgTypecode, drop_columns=drop_columns) + print(getLocalMetroMap()) + if args.save_method == "excel": save_to_excel(data_list, args.sgTypecode, is_elected=True) diff --git a/API/elected.py b/API/elected.py index 7fbeb8b..5586f07 100644 --- a/API/elected.py +++ b/API/elected.py @@ -3,14 +3,13 @@ import argparse import requests import xml.etree.ElementTree as ET -from typing import List +from typing import List, Dict from configurations.secrets import OpenDataPortalSecrets -from .utils import save_to_excel, save_to_mongo +from .utils import save_to_excel, save_to_mongo, getLocalMetroMap -BASE_URL = "http://apis.data.go.kr/9760000/WinnerInfoInqireService2/getWinnerInfoInqire" - +BASE_URL = "http://apis.data.go.kr/9760000/WinnerInfoInqireService2/getWinnerInfoInqire" def fetch_data( sgId: str, @@ -82,7 +81,7 @@ def fetch_all_data( drop_columns = args.drop_columns.split(",") if args.drop_columns else [] data_list = fetch_all_data(sgIds, args.sgTypecode, drop_columns=drop_columns) - + print(getLocalMetroMap()) if args.save_method == "excel": save_to_excel(data_list, args.sgTypecode, is_elected=True) elif args.save_method == "mongo": diff --git a/API/utils.py b/API/utils.py index 0e8f33e..808e77f 100644 --- a/API/utils.py +++ b/API/utils.py @@ -1,7 +1,7 @@ import os import requests import pandas as pd -from typing import List, Optional +from typing import List, Optional, Dict from . import BASE_DIR, SG_TYPECODE, SG_TYPECODE_TYPE from configurations.secrets import MongoDBSecrets @@ -58,3 +58,21 @@ def save_to_mongo(data: List[dict], sgTypecode: str) -> None: raise NotImplementedError("현재 구시군의회의원(6)만 구현되어 있습니다.") print(f"데이터를 성공적으로 MongoDB '{main_collection.name}' 컬렉션에 저장하였습니다.") + +def getLocalMetroMap() -> Dict[str, str]: + db = client["district"] + result = db["local_district"].aggregate([{ + "$lookup": { + "from": "metro_district", + "localField": "sdName", + "foreignField": "name_ko", + "as": "productInfo" + } + }, { "$unwind": "$productInfo" }, { "$project": { + "cid": 1, + "metro_id": "$productInfo.metro_id", + "sdName": 1, + "wiwName": 1, + } }]) + return {(item["sdName"], item["wiwName"]): {"local_id": item["cid"], "metro_id": item["metro_id"]} for item in result} +