반응형
언제부턴가 내가 만든 컴포넌트에서 아래와 같은 메시지를 간헐적으로 뱉기 시작했다.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: replace() argument 2 must be str, not int
일단 에러메시지를 보면 원인을 명확히 알 수 있다. replace라는 함수 내부에 들어가는 2개의 인자는 무조건 str 형이어야 한다. 그런데 어떤 인자값 하나가 int 형으로 들어가서 생긴 문제이다.
>>> str = "REP hi lim co"
>>>
>>> rep_str = 1
>>>
>>> str.replace("REP", rep_str)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: replace() argument 2 must be str, not int
대략 위와 같은 경우.
코드를 다시 보니 정수형을 문자열로 변환하지 않은 부분이 보여서 변환해줬다.
>>> str = "REP hi lim co"
>>>
>>> rep_str = "1"
>>> str.replace("REP", rep_str)
'1 hi lim co'
>>> rep_str = 1
>>> str.replace("REP", str(rep_str))
'1 hi lim co'
위와 같이 정수형을 str 함수로 변환해주거나 아예 변수값 선언을 문자열로 해버리면 문제를 해결할 수 있다. 굉장히 사소하지만 자주나는 에러중 하나다.
반응형
'Python' 카테고리의 다른 글
[python] pip와 python 버전이 다를때 pip 설치하기 (0) | 2022.02.03 |
---|---|
[python] selenium에서 Message: unknown error: session deleted because of page crash 에러 발생 (0) | 2022.02.01 |
[python] 파이썬 스크립트 백그라운드 수행 (Windows) (0) | 2022.01.24 |
[python] 파이썬 스크립트 백그라운드 수행 (linux) (0) | 2022.01.24 |
[python] 좀비 프로세스 생성하기 (os.popen) (0) | 2022.01.10 |