Beautifulsoup으로 읽어온 숫자들은 파이썬 내부적으로는 모두 문자열로 처리된다. 실제로 계산을 하기 위해서는 숫자가 필요하기 때문에 다음과 같은 것을 이용해서 숫자로 처리하면 된다.

string.atof #이것은 string으로 읽어온 것을 float로 처리한다.
string.atoi #이것은 string으로 읽어온 것을 integer로 처리한다.

문자로 읽어올 때 12,345 같은 문자의 경우 중간의 쉼표를 제거해야 atof를 이용해서 제대로 숫자로 처리할 수 있는데 다음과 같은 간단한 함수를 이용하면 된다.

def normalize(s):
    if s == None:
        return 0
    elif s != None:
        return s.replace(',', '').strip()

위에서 replace(',', '') 를 replace(',', ' ') 로 하면 에러가 나니 주의

Posted by trigger
,