더북(TheBook)

예상과 달리 문자열인 str이 나옵니다. input()으로 데이터를 입력받으면 문자로 인식했죠. 이와 마찬가지로 파일에서 읽어 들인 데이터도 문자로 인식합니다. 그래서 형태가 숫자라 하더라도 데이터 타입은 모두 문자열로 나옵니다.

앞서 반복문에서 print(row)로 이용내역을 한 줄씩 출력했을 때를 잘 살펴보세요. 첫 번째 이용내역인 ['2019-10-12 9:13', '1972753', '본', 'S&', '185', '네이버파이낸셜(주)', '546800', '일시불(A)', '부분취소']에서도 두 번째 요소인 승인번호 '1972753'과 일곱 번째 요소인 이용금액 '546800'의 형태는 숫자인데 양옆에 작은따옴표가 있죠. 문자열로 인식됐다는 의미입니다.

사실 data 리스트의 모든 요소가 작은따옴표로 감싸져 있습니다. 즉, CSV 파일에서 읽어 들인 데이터는 모두 문자로 인식됩니다. 따라서 이용금액 등의 데이터를 연산하고 싶으면 문자열을 숫자형으로 바꿔 주는 데이터 타입 변환이 필요합니다. 이용금액은 소수점이 없는 정수이므로 int()로 감싸 주면 되겠죠? 변수를 사용해 결괏값을 따로 저장해 봅시다. 이용금액 row[6]int()로 감싸서 변수 payment에 저장한 후 출력합니다.

for row in data:
    payment = int(row[6])
    print(payment, type(payment))
실행결과
546800 <class 'int'>
60440 <class 'int'>
91520 <class 'int'>
...
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.