Skip to content
Jae-Hwan edited this page Nov 30, 2021 · 5 revisions

누락된 투수 자료 넣기

아래와 같은 형식으로 자료를 넣는다.

home_pitchers ='''
투수명,이닝,피안타,실점,자책,4사구,삼진,피홈런,타자,타수,투구수,경기,승리,패전,세이브,평균자책
송승준,6,9,2,2,3,3,0,29,26,94,1,0,0,0,3.00
김이슬,0 ⅓,0,0,0,0,0,0,1,1,6,1,0,0,0,0.00
이정민,0 ⅔,0,0,0,0,0,0,1,1,1,1,1,0,0,0.00
강영식,1,0,0,0,0,2,0,3,3,10,1,0,0,0,0.00
애킨스,1,0,0,0,0,0,0,3,3,13,1,0,0,1,0.00
'''

home_pitchers_patch = {"송승준":{"등판":"선발"}, "이정민":{"결과": "승"}, "강영식": {"결과":"홀드"}, "애킨스": {"결과":"세"}, "팀": "롯데"}

아래 함수를 이용한다.

def changing_naver_pitchers_txt_to_csv(pitchers):
    pitchers_list = []
    reader = csv.reader(pitchers.split('\n'), delimiter=',')
    for row in reader:
        pitchers_list.append(row)
    return pitchers_list

def changing_naver_pitchers_col_name(pitchers_text):
    # 아래 첫번째 줄 코드는 트릭이다. 저장할 때 보기 좋게 하기 위해서
    # 아래위로 엔터를 넣는데 그걸 제거하는 것이다. 
    temp_pitchers = pitchers_text[1:-1]
    temp_pitchers = temp_pitchers.replace("투수명","선수명")
    temp_pitchers = temp_pitchers.replace("승리","승")
    temp_pitchers = temp_pitchers.replace("패전","패")
    temp_pitchers = temp_pitchers.replace("세이브","세")
    temp_pitchers = temp_pitchers.replace("피홈런","홈런")
    temp_pitchers = temp_pitchers.replace("평균자책","평균자책점")
    
    return temp_pitchers

def changing_naver_pitchers_csv_to_json(pitchers_list, pitchers_patch):
    total_pitchers_list = []

    for pitcher in pitchers_list[1:]:
        i = 0
        temp_data = {}
        for item in pitcher:
            temp_data['팀'] = pitchers_patch['팀']
            temp_data[pitchers_list[0][i]] = item
            i = i + 1
        if temp_data['선수명'] in pitchers_patch.keys():
            if len(pitchers_patch[temp_data['선수명']]) == 2:
                temp_data['등판'] = pitchers_patch[temp_data['선수명']]['등판']
                temp_data['결과'] = pitchers_patch[temp_data['선수명']]['결과']
            else:
                if '등판' in pitchers_patch[temp_data['선수명']]:
                    temp_data['등판'] = pitchers_patch[temp_data['선수명']]['등판']
                    temp_data['결과'] = 0
                else:
                    temp_data['등판'] = 0
                    temp_data['결과'] = pitchers_patch[temp_data['선수명']]['결과']
        total_pitchers_list.append(temp_data)
    return total_pitchers_list

작동법

def pitchers_data():
    temp = fix.changing_naver_pitchers_col_name(home_pitchers)
    temp = fix.changing_naver_pitchers_txt_to_csv(temp)
    temp = fix.changing_naver_pitchers_csv_to_json(temp, home_pitchers_patch)
    print(temp)

결과

[{'팀': '롯데', '선수명': '송승준', '이닝': '6', '피안타': '9', '실점': '2', '자책': '2', '4사구': '3', '삼진': '3', '홈런': '0', '타자': '29', '타수': '26', '투구수': '94', '경기': '1', '승': '0', '패': '0', '세': '0', '평균자책점': '3.00', '등판': '선발', '결과': 0}, {'팀': '롯데', '선수명': '김이슬', '이닝': '0 ⅓', '피안타': '0', '실점': '0', '자책': '0', '4사구': '0', '삼진': '0', '홈런': '0', '타자': '1', '타수': '1', '투구수': '6', '경기': '1', '승': '0', '패': '0', '세': '0', '평균자책점': '0.00'}, {'팀': '롯데', '선수명': '이정민', '이닝': '0 ⅔', '피안타': '0', '실점': '0', '자책': '0', '4사구': '0', '삼진': '0', '홈런': '0', '타자': '1', '타수': '1', '투구수': '1', '경기': '1', '승': '1', '패': '0', '세': '0', '평균자책점': '0.00', '등판': 0, '결과': '승'}, {'팀': '롯데', '선수명': '강영식', '이닝': '1', '피안타': '0', '실점': '0', '자책': '0', '4사구': '0', '삼진': '2', '홈런': '0', '타자': '3', '타수': '3', '투구수': '10', '경기': '1', '승': '0', '패': '0', '세': '0', '평균자책점': '0.00', '등판': 0, '결과': '홀드'}, {'팀': '롯데', '선수명': '애킨스', '이닝': '1', '피안타': '0', '실점': '0', '자책': '0', '4사구': '0', '삼진': '0', '홈런': '0', '타자': '3', '타수': '3', '투구수': '13', '경기': '1', '승': '0', '패': '0', '세': '1', '평균자책점': '0.00', '등판': 0, '결과': '세'}]

Clone this wiki locally