Python/Debugging

TypeError: Object of type int64 is not JSON serializable 해결

jimmy_AI 2022. 8. 7. 20:30
반응형

JSON 관련 TypeError 디버깅(return 값 인식 오류)

프로그래머스 등의 코딩 테스트 연습 사이트에서의 답안 제출 과정과 같이

return 결과를 다른 곳에 보낼 때 발생할 수 있는 TypeError 종류에 대한 원인과

해결법을 살펴보도록 하겠습니다.

 

 

오류 상황 예시 및 원인

예를 들어, 두 정수 리스트 간의 내적값을 구하는 문제에 대하여 아래처럼 답안을 제출한 경우

return되는 값은 분명히 정답으로 제출되는 듯 하지만 아래와 같은 에러가 발생합니다.

(에러 메시지 : TypeError: Object of type int64 is not JSON serializable)

 

예상되는 원인으로는 np.dot 함수의 출력 결과는 numpy.int64 자료형인데

기본 int 자료형과는 다르게 해당 자료형이 사이트에 제출되고 인식되는 과정에서

오류가 발생한 것으로 추정됩니다.

import numpy as np

a = [1, 2, 3, 4]
b = [5, 6, 7, 8]

print(type(np.dot(a, b))) # <class 'numpy.int64'>

 

반응형

 

오류 해결 방법

파이썬에서 제공하는 기본 int 자료형은 문제가 없으므로

return 값의 자료형을 int() 메소드로 감싸 기본 int형으로 변환시켜주시면

위의 에러를 고칠 수 있습니다.