티스토리 뷰

반응형

🚀  들어가며...

  • 달력 기능 개발도중 Front에서 일수 표기 O,X를 update하려고하는 컬럼만 받아서 따로 처리하려고 하던 도중, Join과 Split에 대해 더 깊게 공부하게 되었고, 또한 set 집합자료형과 연계하여 쿼리문을 만들어 보았습니다.

 

💌 소스코드

def make_update_calender_query(data, data_1):
    update_columns = {'str_5', 'str_6', 'str_7', 'str_8', 'str_9', 'str_10', 'str_11', 'str_12', 'str_13',
                      'str_14', 'str_15', 'str_16', 'str_17', 'str_18', 'str_19', 'str_20', 'str_21', 'str_22',
                      'str_23', 'str_24', 'str_25', 'str_26', 'str_27', 'str_28', 'str_29', 'str_30', 'str_31',
                      'str_32', 'str_33', 'str_34', 'str_35'}   # set -  unique

    json_data_bfo = json.loads(data.get('ym_calender_1'))
    json_data = json.loads(data.get('ym_calender'))

    data.update(json_data)
    data_1.update(json_data_bfo)

    sub_query = ", ".join(["{0} = %({0})s".format(col) for col in list(json_data.keys() & update_columns)])
    sub_query_1 = ", ".join(["{0} = %({0})s".format(col) for col in list(json_data_bfo.keys() & update_columns)])

    # 전월 당월 키값 중복으로 인한 분기처리
    query = """
        UPDATE FTW_ETCPAYSUB_MAT_1_4 
        SET {sub_query}
        WHERE STR_1 = %(cd_etemp)s AND STR_3 = %(ym_pay)s AND YM_INSA = %(ym_insa)s; 
        """.format(sub_query=sub_query)

    query_1 = """
        UPDATE FTW_ETCPAYSUB_MAT_1_4
        SET {sub_query_1}
        WHERE STR_1 = %(cd_etemp)s AND STR_3 = %(ym_rvrs_1)s AND YM_INSA = %(ym_insa)s; 
        """.format(sub_query_1=sub_query_1)

    return query_1, query

📑 내용

  • Join 함수는 리스트를 특정 구분자를 포함해 문자열로 변환해 주는 함수이고,
    Split함수는 문자열을 특정 구분자를 기준으로 나누어 리스트로 변환해 주는 함수입니다.

  • Set 자료형은 unique하다는 특성을 가지고, 교집합, 합집합, 차집합을 이용할수 있다는 특성을 가지고 있어서 Front에서 넘어온 파라미터와 기존에 제가 선언해둔 1일~31일 변수를 기준으로 서로 일치하는 변수명을 뽑아서 서브쿼리를 만들어주었습니다.

🙋🏻‍♂️ 후기

Join함수와 Split함수는 앞으로도 엄청 자주 이용할것 같고, 중복이 없어야 하는 상황이면 set 자료형 특성을 이용하여 쉽게 데이터를 조작할수 있을것 같습니다!

 

아주 Python 스러운 코드였군!

 

🔗  참고한 글

https://ourcstory.tistory.com/46

 

[Python] Join, Split 리스트를 문자열로, 문자열을 리스트로 변환

들어가며 파이썬에 내장되어 있는 함수 join, split을 이용해 문자열(String)을 리스트(List)로 변환하는 방법입니다. Join 함수는 리스트를 특정 구분자를 포함해 문자열로 변환해 주는 함수입니다. Spl

ourcstory.tistory.com

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함