hsnam95 / class2022Spring

130 stars 21 forks source link

string indices must be integers #32

Open J-Y-Song opened 2 years ago

J-Y-Song commented 2 years ago

교수님 안녕하세요, 2018130810 송지영입니다.

아래 코드에서 "string indices must be integers" 와 같은 오류가 계속해서 발생하여 질문드리고자 합니다.

def test(TIME): URL = ('http://apis.data.go.kr/4210000/DonghaeTrafficPopulationInfoService/' 'getDonghaeTrafficPopulationInfoList_190101_190331?' 'TIME='+TIME+ '&serviceKey=fkk5jEs6nkQvW4e3lp9qDGKqaGkxhsG300psMVxuuUSTjLkbdj9voPIu3MaHTgwlixzLNzpLELY4aTchHpfc%2Fg%3D%3D' '&numOfRows=10' '&pageNo=1' '&resultType=json' '&GRID_ID=48725483' '&GRID_X_AXIS=487227' '&GRID_Y_AXIS=548368' '&CRT_YMD=20190101') response = requests.get(URL) r = response.json() items = r['response']['body']['items']

CRT_YMD = [item['CRT_YMD'] for item in items] DONG_CD = [item['DONG_CD'] for item in items] DONG_NM = [item['DONG_NM'] for item in items] GRID_X_AXIS = [item['GRID_X_AXIS'] for item in items] GRID_Y_AXIS = [item['GRID_Y_AXIS'] for item in items] TRACC_NDX = [item['TRACC_NDX'] for item in items]

CRT_YMD = pd.Series(CRT_YMD) DONG_CD = pd.Series(DONG_CD)
DONG_NM = pd.Series(DONG_NM) GRID_X_AXIS = pd.Series(GRID_X_AXIS) GRID_Y_AXIS = pd.Series(GRID_Y_AXIS)

df = pd.DataFrame({'CRT_YMD':CRT_YMD, 'DONG_CD': DONG_CD, 'DONG_NM': DONG_NM, 'GRID_X_AXIS': GRID_X_AXIS, 'GRID_Y_AXIS': GRID_Y_AXIS, 'TRACC_NDX':TRACC_NDX}) return df

감사합니다

J-Y-Song commented 2 years ago

CRT_YMD = [item['CRT_YMD'] for item in items]

해당 line 부터 동일한 오류 반복적으로 발생하고 있습니다.

hsnam95 commented 2 years ago

현재 함수 정의 부분에서 indent가 제대로 안되어 있네요

J-Y-Song commented 2 years ago

감사합니다! 해결하였습니다.

J-Y-Song commented 2 years ago

교수님, 혹시 한 가지 더 여쭤볼 수 있을까요?

gradio 로 실행하였으나, input 을 입력했을 때 output이 dataframe 형태가 아닌 error 로 뜨고 있는 상황입니다. 확인 한 번 부탁드리고 싶습니다.!

https://48605.gradio.app/

hsnam95 commented 2 years ago

자세히 보면 r['response']['body']['items']에서 하나 더 아래로 들어 가야합니다.