-
Notifications
You must be signed in to change notification settings - Fork 3
temp
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 1⁄3,0,0,0,0,0,0,1,1,6,1,0,0,0,0.00 이정민,0 2⁄3,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 1⁄3', '피안타': '0', '실점': '0', '자책': '0', '4사구': '0', '삼진': '0', '홈런': '0', '타자': '1', '타수': '1', '투구수': '6', '경기': '1', '승': '0', '패': '0', '세': '0', '평균자책점': '0.00'}, {'팀': '롯데', '선수명': '이정민', '이닝': '0 2⁄3', '피안타': '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, '결과': '세'}]