-
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 ⅓,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 = changing_naver_pitchers_col_name(home_pitchers)
temp = changing_naver_pitchers_txt_to_csv(temp)
temp = 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,
"결과": "세",
},
]